Я написал код, который имитирует матрицу. Эта матрица имеет указатель на указатель и фактически представляет собой массив связанных списков. У меня есть два из них: один для строк и второй для столбца. каждый массив индексирует его первую строку матрицы/col, а список - это остальное число в rox/col.Ошибка отладки: _CrtIsValidHeapPointer (block)
Я могу отправить код, но его не короткий.
Моя проблема в том, что после того, как я сделаю некоторые действия, и я попытаюсь удалить матрицу в конце - это поп меня эта ошибка. я судимый изменить свой код, и я обнаружил, что проблема здесь:
delete this->rowsArray;
this->rowsArray = newRowArray; ->here
delete this->colsArray;
this->colsArray = newColArray; ->here
rowsArray объявления colsArray initilized так:
rowsArray = new matrixNode*[lastRowPlace+1]; colsArray = new matrixNode*[lastColPlace+1];
же о newColsArray и строке ... I надеюсь, что вы сможете дать мне совет, потому что я действительно не знаю, что делать :(
** Просто забыл сказать, что проблема поп-музыки только у деструктора ...
Проблема где-то в другом месте. Хотя 'rowsArray' был правильно выделен, вы изменили указатель где-то в своем коде после создания' rowsArray'. В этот момент он больше не был действительным указателем кучи. – abelenky
Возможно, вы уже удалили блок, который освобожден в деструкторе, не указав указатель на nullptr. Возможно, вы испортили кучу каким-то несвязанным кодом. Возможно, ваш матричный класс имеет неправильно реализованный конструктор копирования, оператор присваивания ... – drescherjm
Проблема вызвана «выполнением некоторых действий». Вероятно, вы должны пересмотреть свой код - массив связанных списков не является разумным представлением матрицы. – molbdnilo