Jos jedan pocetnicki problem izgleda... Te vrednosti koje te bude NISU slucajne! :) Tu vrednosti koje se nalaze u memoriji na adresama koje odgovaraju elementima niza koji nameravas da koristis u svom programu. O cemu se radi...
Recimo da zelis da koristis niz iaMojNiz koji ima 5 elemenata, i uradis dakle nesto tipa
Code:
int iaMojNiz[4];
Nakon ove linije se zna da isMojNiz niz pocinje od adrese 0xbabadeda (pretpostavka, ovo se nikad ne zna :), ali sama linija NIJE OBRISALA podatke koji su na toj adresi (na toj adresi pocinje prvi element niza iaMojNiz!) bili pre izvrsavanja te linije. Dakle, prostim recima stari podaci su jos tu, u memoriji. Zbog toga kad se odmah nakon ove linije ovaj niz odstampa sa recimo:
Code:
int ii;
for (ii = 0; ii < 5; ++ii)
printf("Element %d : %d\n", ii, iaMojNiz[ii]);
dobice se rezultat koji je nemoguce predvideti. Evo sta sam ja dobio:
Code:
Element 0 : 2293640
Element 1 : -1
Element 2 : 2293644
Element 3 : 575
Element 4 : 2293664
Neko od vas kad bi iskompajlirao programcic (na kraju cu dati i kod) koji ovo stampa i kada bi ga startovao na svom kompjuteru dobio bi totalno drugacije rezultate...
A evo i koda:
Code:
#include <stdio.h>
#include <string.h>
int main(void)
{
int iaMojNiz[4];
int ii;
for (ii = 0; ii < 5; ++ii)
printf("Element %d : %d\n", ii, iaMojNiz[ii]);
getch();
return 0;
}
(Dev-C++ projekat cu da zalepim uz poruku.)
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin