1. ホーム
  2. c++

[解決済み] Debug Assertion Failed: _CrtIsValidHeapPointer(block)

2022-01-31 14:02:41

質問

行列をシミュレートするコードを書きました。 この行列はポインタへのポインタを持ち、実際にはリンクリストの配列になっています。 各配列のインデックスは、その行列の行/列の最初の場所であり、リストは行/列の残りの番号である。

私はコードを送ることができますが、それは短くないです。

私の問題は、私がいくつかのアクションを行った後、最後にマトリックスを削除しようとすると、このFailed problemが表示されることです。 私は自分のコードを変更しようとし、私は問題がここにあることを発見した。

delete this->rowsArray;
this->rowsArray = newRowArray; ->here


delete this->colsArray;
this->colsArray = newColArray; ->here

rowsArrayとcolsArrayはこのように初期化されます。

rowsArray = new matrixNode*[lastRowPlace+1]; colsArray = new matrixNode*[lastColPlace+1];

newColsArrayとrowについても同様です...。 私は本当に何をすべきか分からないので、私はあなたが私に助言を与えることができることを期待します:(

**デストラクタで問題が発生することを言い忘れていました...。

解決方法は?

のようなポインタを定義した場合、そのポインタは new T* [size]

で削除する必要があります。 delete[] ではなく delete