[ dusty @ 25.12.2006. 14:01 ] @
| Pozdrav ljudi.
Imam strukturu cije je jedan od clanova objekat tipa CString. Od te strukture dinamicki kreiram niz, i zatim radim nesto sa clanicama niza i na kraju posla hocu da ih pocistim. Medjutim, ako koristim delete(pointerNaNiz); prijavljuje mi da je neispravna adresa.
Ako stavim da je taj clan strukture pointer na CString, i na kraju ih eksplicitno obrisem iz svih elemenata niza, a zatim obrisem niz, radi super.
Pitanje je kako da obrisem niz, a da ne moram da imam pointer na CString ?
Evo koda, da pokusam da ilustrujem na sta mislim.
Code:
struct _Test{
int i;
CString name;
};
.
.
.
int c = 5;
_Test *pTestArr = new _Test[c];
.
pTestArr[2]->name = _T("Pera");
.
delete(pTestArr); //ovde me zeza
HVALA ! |
[ NastyBoy @ 25.12.2006. 14:13 ] @
CString chlan ce biti automatski obrisan kad obrishesh instancu strukture u kojoj se nalazi, ne morash to ruchno da odardjujesh.
Dobro bi bilo da pogledash josh jednom kako new/delete radi - ako neshto alocirash kao niz (new []) onda morash tako i da ga brishesh (delete [] xxx, umesto obichnog delete xxx).
[ Dragi Tata @ 25.12.2006. 17:13 ] @
Citat:
NastyBoy: Get and Set methods are evil. (Allen Holub)
Amin! A isto važi i za "properties".
@dusty: Moj uobičajeni savet u takvim situacijama: batali new-delete i koristi vector:
http://www.novetehnologije.com/Default.aspx?tabid=65
[ NrmMyth @ 25.12.2006. 21:42 ] @
Slazem se.
STL je mocno oruzje kojeg treba iskoristiti.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.