Я использую Dr. Memory для отладки моего кода. Это дает мне следующее сообщение:INVALID HEAP ARGUMENT: выделено оператором new [], освобождено оператором delete
INVALID HEAP ARGUMENT: allocated with operator new[], freed with operator delete
Однако всякий раз, когда я использую delete[]
вместо delete
, это дает мне ту же ошибку. Ошибка возникает в следующих строках:
for (int x = 0; x < width; ++x)
{
delete data[x];
}
delete [] data;
Переменная data
в настоящее время распределяется следующим образом:
data = new char*[width];
for (int i = 0; i < width; ++i)
{
data[i] = new char[1];
}
Может кто-то пожалуйста, помогите мне?
Это потому, что вы все еще используете 'delete' для удаления объектов, выделенных с помощью' new [] '. – Hurkyl
Выделение одного символа в виде массива? Это падлин. На самом деле, злоупотребление памятью в целом - это paddlin ', почему вы не используете 'std :: vector'? – user657267