Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.
Avatar
petr.dar
Člen
Avatar
petr.dar:

č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
Redaktor
Avatar
Odpovídá na petr.dar
tomisoka:

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:

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
Jakub Šárník:

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
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na petr.dar
tomisoka:

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:

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
Taskkill
Redaktor
Avatar
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.