[ MP3MP3 @ 26.09.2009. 13:00 ] @
Radim seminarski rad u C jeziku i imam na izgled sasvim ispravan programski kod.
I nema grešaka ali kada unosim pojedine podatke u datoteku prestane u sred rada i vrati mi poruku

thread stopped Fault: access violation at 0x401251; read of address 0x4
u okviru menija sa žutim uzvikom i opcijom OK.

Ne razuemem zašto mi se ovo javlja. Hvala...

[Ovu poruku je menjao MP3MP3 dana 26.09.2009. u 14:14 GMT+1]
[ X Files @ 26.09.2009. 15:56 ] @
Greska koju si naveo tipicno ukazuje da pogresno pristupas nekom delu memorije.

Ali bez uvida u kod, niko ti ne moze pomoci.
[ MP3MP3 @ 26.09.2009. 17:38 ] @
Ne smem da dam kod u pitanju je seminarski rad čiji kod ima 11 A4 stranica.
Čak i da dam trebalo bi mnogo vremena da se pohvata šta je šta.

Prešao sam u Turbo C okruženje i nemam tih problema, problem rešen.
[ Mihajlo Cvetanović @ 27.09.2009. 17:42 ] @
Turbo C? Zar nije to ono iz DOS-a? Ne bih rekao da je problem rešen time što si prešao s modernog kompajlera na onaj star 20 godina :-)
[ Goran Arandjelovic @ 28.09.2009. 16:58 ] @
Hm... ne da nisi rešio problem, nego ćeš samo da ga produbiš ako nastaviš da dorađuješ taj kod u Turbo C-u...

1. Nisi inicijalizovao neki pokazivač kako treba.
2. Pristupio si oslobođenoj memoriji.
3. Sam si NULL-ovao pokazivač i nakon toga mu pristupio.

Eto ti mogućih razloga u najjednostavnijem slučaju...
[ MP3MP3 @ 11.10.2009. 17:21 ] @
Izvinjavam se što tek sada vidim da se nastavila diskusija, zanimljivo a čudno je da je ispravno radio u turbo c okruženju a da nije radio u Borland. Znam da je Turbo C daleko starija verzija ali je problem (pretpostavljam) što mi ta instalacija borland c++ imala greške i za vreme instalacije koje sam ignorisao.

Dakle u Borlandu ne radi ni najprostiji kod sa main i printf... Javljao neku grešku osim navedene, cannot work in asinhrone mode... i tome slično.
Tačnije jednom kompajlira bilo koji kod a sledeći put javlja greške koje sam navodio iako je u pitanju isti kod. To se nije dešavalo sa turbo C

Inače nema razloga da se plašite turbo c-a, jeste stariji ali radi odlično. Poslednja verzija je sasvim prihvatljiva.

Čak mi i Dev C++ često javlja da ne postoji fajl i zaluđuje.
[ Goran Arandjelovic @ 12.10.2009. 22:47 ] @
Možda bi bilo lakše kada bi okačio parče koda i tačnu verziju okruženja i doslovce prepisao output kompajlera ovde.

Inače, probaj recimo Code::Blocks (tamo se nalazi i MinGW) ako ti ne bude teško i javi šta si uradio.
[ MP3MP3 @ 13.10.2009. 17:37 ] @
Možda nisam bio jasan radi mi programski kod i predao sam svoj rad pre 15-ak dana.
Radio je u Turbo C okruženju dok mi je Borland imala uvrnute greške ali nakon drugog kompajliranja. (za sve kodove pa i najprostije je javljao grešku nakon drugog kompajliranja). Posumnjao sam u instalaciju ili u config.nt u system32 koju sam menjao zbog PROLOGA koji mi je prethodno trebao. Za prolog i C su malo drugačija podešavanja u datoteci config.NT.


Dakle da ne komplikujem, hvala svima na pomoći problem je rešen.
A kod mogu da pošaljem na PP ali nije ništa spektakularno, tiče se algebre i logike u računarstvu i dinamičkih struktura.

Ideja rada je da unosimo podatke o osobama u datoteku koja je nazvana Podaci.dat, svaka osoba je struktura koja sadrži ime, prezime, adresu, broj telefona kao i jedinstveni matični broj (JMBG). Podaci se čuvaju u datoteku i unose sa tastature. Zatim se od prezimena ili JMBG kreira binarno balansirano stablo. Svaki novi podatak o novoj osobi se unosi u datoteku i u binarno balansirano stablo pa ako ima potrebe, stablo se balansira. Za balansiranje se koristi algoritam AVL. A struktura osoba se čuva na steku kao liste.
Podaci se iz datoteke mogu unositi po atributima JMBG ili Prezime. Takođe sva prezimena i JMBG se mogu ispisati ili naći pretragom.
Glupe su metode ali je za taj predmet bitno da se koriste dinamičke strukture (ali obavezno liste i stabla) pa je moralo tako.



Još jednom hvala i pozdrav.