0
2dリンクリストで作業していて、リンクされた各リストが右下を指していると、プログラムがクラッシュするたびにエラーが発生します。 例外がスローされました。 は0xCDCDCDCDでした。 4行目でb = a-> nextの例外がスローされました。2dリンクリストデストラクタ
while (a != NULL)
{
nodePtr temp = a->next;
nodePtr temp1 = c->bottom;
delete a;
delete c;
a = temp;
c = temp1; // fixed definitely incorrect assignment
}
a
とc
ポインタがあなたに会っているときは、未定義の動作を持っています。でも(つまり、アイテムの数が偶数であることを意味する)は、このコードが正しく動作していることを想定し
LinkedList::~LinkedList()
{
nodePtr a = head;
nodePtr b = a->next;
nodePtr c = down;
nodePtr d = c->bottom;
while (a != NULL)
{
nodePtr temp = a->next;
nodePtr temp1 = c->bottom;
delete a;
delete c;
a = temp;
c = temp;
}
}
'a'がnullでないことを確認していますが、 'c'はどうですか?また、どの行に例外がスローされますか? – AlexG
先に何かを初期化するのを忘れました。 – molbdnilo
値 '0xcdcdcdcd'は、Visual Studioとそのデバッガで通常初期化されていないグローバルメモリをマークするために使用されます(例:[this MSDN reference](https://msdn.microsoft.com/en-us/library/aa260966(v = vs .60).aspx))。つまり、その値を持つ変数がある場合、その変数を適切に初期化していません。コンストラクタで 'nullptr'へのポインタを設定していませんか? –