• 3 odgovora
  • 3.344 pregleda
Neka korisnik odluchi ... 10.03.2002. u 19:02 · pre 299 meseci #1
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 !!!
Re: Neka korisnik odluchi ... 10.03.2002. u 19:10 · pre 299 meseci #2
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.
Potpis
IOCC
Re: Neka korisnik odluchi ... 11.03.2002. u 00:29 · pre 299 meseci #3
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 :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme