Imao sam do skora jedan interesantan problem. Nekako sam ga resio ali ne verujem da cu sam saznati sta ga je neposredno izazivalo. Moguce je da ce koristiti dodatni info: Win32 x OpenGL aplkacija; MS VC++ 6.0 kompajler; WinME i Win2000 platforme.
Problem je naizgled trivijalan: Applikacija nekako pada prilikom WinMain-ovog return 0;. (std. poruka i poziv na debug)
Sta ga naizgled izaziva: Padovi aplikacije su se desavali kada bih u klasu, uslovno receno - kamere, dodao ma kakav niz ili objekat npr. int axe[256], string axe itd. Taj niz nije trebao da radi nista. Samo da postoji - i aplikacija je padala. Sklonim niz iz klase ili ga stavim kao eksternu, sve radi. (moguce ovo za eksternu jer se aplikacija moze runnovati samo sa jednom kamerom)
Sama klasa eksplicitno ne radi nista sto bi se moglo nazvati dinamickom alokacijom memorije. Samo ima gomilu elemenata i koristi ih. Objekte koji su sadrzani kao i objekte objekata koji su sadrzani itd. sam isprobao i pregledao. Zasebno rade kako treba.
Obeshrabrujuce?
Posto ne mogu iz ove koze, krenuo sam sa citanjem koda. Nakon nekog vremena, slucajno mi je zapao za oko jedan staticki objekat u jednoj od metoda klase o kojoj je rec, podesen da alokalizuje string duzine 1025. Premda vrednost moze da zasmeta verovatno svakom ko ce citati ovak tekst, sve je cisto i objekat deluje beznacajno i ispravno sintaksicki i semanticki. Ipak, prebacio sam vrednost na 1024 i BINGO! Problem je nestao. Od tada radim sta hocu sa tom klasom i van nje bez ikakvih hmm - vidljivih posledica.
Interesuje me sta se zaista desavalo. Ima li neko ideju? Delove source-a jos nisam postovao jer mislim da sam dovoljno dobro opisao situaciju. (Uopsteno - neko ce reci - ali zaista ne vidim nikakvu dodatnu karakteristicnost) Ako zatreba, trazite - mene interesuje uzrok.