NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: omezení velikosti pole

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
petr.dar
Člen
Avatar
petr.dar:19.4.2016 19:04

čau lidi
připadá mi to jako blbost, ale když napíšu do objektu:

int number[];

s předem nespecifikovaným počtem prvků a pak tam začnu prvky přidávat, má to nějaký daný limit? Měl jsem za to, že to závisí jen na velikosti ramky...
Já tam teda neukládám int, ale objekty a chtěl jsem tam těch objektů dát přes 1000 a když to spustim, tak mi to načte jen přes 600 objektů, pak mi program zhavaruje...

 
Odpovědět
19.4.2016 19:04
Avatar
tomisoka
Tvůrce
Avatar
Odpovídá na petr.dar
tomisoka:19.4.2016 19:21

Ono by tě to ani nemělo nechat zkompilovat. Jedná se o statické pole, takže musí předem vědět jak velké má být. Pokud nevíš jak velké to pole bude tak použij dynamické pole nebo vector(jen pro C++).
Jinak každá věc má nějakou předem určenou velikost, musí se vědět jak bude velká a kdy už za ní může být další věc. Když přesáhneš její velikost začneš používat paměť kde je něco jiného a pokud to není jiná tebou alokovaná paměť (kde to prostě přepíšeš a pak se budeš divit co to tam máš), tak spadne.

 
Nahoru Odpovědět
19.4.2016 19:21
Avatar
petr.dar
Člen
Avatar
petr.dar:19.4.2016 19:56

No jo, ale tu velikost můžu zadat pouze číslem, když tam chci zadat proměnnou, kterou si dříve vypočítám, tak to nejde... nebo já něco dělám blbě?

 
Nahoru Odpovědět
19.4.2016 19:56
Avatar
Odpovídá na petr.dar
Neaktivní uživatel:19.4.2016 20:00

Pokud vím, tak od standartu c99 je možné vytvořit statické pole s velikostí z proměnné...

Nahoru Odpovědět
19.4.2016 20:00
Neaktivní uživatelský účet
Avatar
tomisoka
Tvůrce
Avatar
Odpovídá na petr.dar
tomisoka:19.4.2016 20:01

Velikost statického pole musíš znát již při kompilaci. Pokud ji neznáš (zadáváš ji proměnnou) tak použij dynamické pole.

 
Nahoru Odpovědět
19.4.2016 20:01
Avatar
petr.dar
Člen
Avatar
Odpovídá na tomisoka
petr.dar:20.4.2016 17:47

Ok, ale při mazaní

delete[] number;

už tam velikost psát nemusim že jo

 
Nahoru Odpovědět
20.4.2016 17:47
Avatar
Nahoru Odpovědět
20.4.2016 17:52
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.