char* koef2;
double* tsel;
tsel=new double[m_peremen];
k=0;
int size;
for(i=2;k<m_peremen;i=i+2)
{
vse[0].GetWindowText(koef);
size=koef.GetLength();
koef2=new char[size];
koef2=koef.GetBuffer(size);
tsel[k]=atof((const char *)koef2);
delete [] koef2;
k++;
}
Ошибка при освобождении памяти,выделенной динамически.
Код:
На строке
Код:
delete [] koef2;
Программа вылетает и выскакивает сообщение
Debug Assertion Failed
Program:...менты\Visual Studio 2008\Projects\Neprosto\Debug\Neprosto.exe
File:f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
Line:1317
Expression: _crtisvalidHeapPointer(pUserdata)
Я весь поиск перепахал,но советов,которые бы помогли не нашёл.Подскажите пожалуйста,в чём проблема?
[/FONT]
Цитата:
koef2=koef.GetBuffer(size);
http://sources.ru/cpp/mfc/string/cstring_14.htm
То есть получается, что при
Код:
koef2=koef.GetBuffer(size);
Код:
koef2=new char[size];
Код:
delete [] koef2;
если первое, то ответ "да"
Ошибка автора - классический memory leak. И в полне годен в качестве примера для иллюстрации типичных ошибок.
адресу используются для работы с char'овскими массивами,а мне нужно извлечь строку из CString в массив char.
Цитата:
Вы меня, конечно, извините, но где Вы так научились копировать строки?
К сожалению по-другому преобразовывать CString в массив char я не умею:(
Ещё раз всем спасибо.
Цитата: Karpo
К сожалению по-другому преобразовывать CString в массив char я не умею:(
Ещё раз всем спасибо.
(LPCTSTR)MyCStringVariable