Re: Как правильно удалить динамически созданный массив?
От: zerk  
Дата: 03.12.02 07:49
Оценка:
DU>Правильно ли это:

DU> int len=10;

DU> char* c;
DU> c= new char(len);
DU> delete [] c;

Если конкретно этот пример, то правильно, а если :

int len=10;
char* c,d[3]="12\0";
c= new char(len); // если сделать ZeroMemory, то будет ОК
strcpy(c,&d[0]);
....
манипуляции с буфером
....
delete [] c; // даст ошибку ~ DAMAGE after (before)
// normal block

В общем, выделяя память для массива char, ее надо очистить (желательно), и выделять с запасом (+1), тогда не важно где и когда выделил память, delete [] отработает нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.