[ M.Marko @ 10.03.2002. 19:02 ] @
Ovo je uproscen primer onoga sto ja hocu ...
Ovde postoji greska u deklaraciji niza. Sta treba da uradim
da sam korisnik izabere koliko zeli objekata da smesti u niz.

int a;
cin >> a;
int niz[a];
int i;
for (i = 0; i < a; i++)
niz = i;

Unapred hvala !!!
[ Dragi Tata @ 10.03.2002. 19:10 ] @
Citat:
M.Marko:
Ovo je uproscen primer onoga sto ja hocu ...
Ovde postoji greska u deklaraciji niza. Sta treba da uradim
da sam korisnik izabere koliko zeli objekata da smesti u niz.

int a;
cin >> a;
int niz[a];
int i;
for (i = 0; i < a; i++)
niz = i;

Unapred hvala !!!


Imaš dva rešenja:
1. Umesto linije
int niz [a];
stavi

int* niz = new int[a];

i ne zaboravi delete[] niz na kraju programa.
2. (Moje omiljeno)
Deklariši niz preko STL vector-a:
vector<int> niz;
Taj se "širi" automatski i nema potrebe da oslobađaš memoriju.
[ Milan Aksic @ 11.03.2002. 00:29 ] @
Code:

int a; 
cin >> a; 
int niz[a]; 
int i; 
for (i = 0; i < a; i++) 
[b]niz = i;[/b]

I ova mala greska, ovde si izostavio operator indexa [] kako bi odredio kojem elementu niza dodeljujes vrednost promenljive i. Kako je ime niza konstantni pokazivac na prvi element, a opet nisi koristio operator dereferenciranja *, efekat je kao da si uradio sledece:
Code:

int* var1;
int j = 15;
var1 = j; // umesto *var1 = j;
// ili u krajnjem slucaju var1 = &j;

Za ostalo vazi ono sto je Dragi Tata napisao.

Dragi Tata, bez ljutnje, ali mislim da zaista nemas potrebe da quotujes poruku koja je odmah iznad :)
[ Dragi Tata @ 11.03.2002. 02:37 ] @
Prihvatam kritiku i izvinjavam se... Staraću se da se ne ponovi.