ここでは結果のない2D配列を削除しようとしています。2D_arrayエラーを削除します
私はこの構造体があります示したように、私は、動的に2次元配列を作成しています機能の一つで
struct Node {
char Object[32];
int Link_num;
char **Links;
Node *Next;
};
:
record->Links = new char*[record->Link_num];
for (int i = 0; i < record->Link_num; i++) {
record->Links[i] = new char[16];
cin.getline(record->Links[i], 16, '\n');
}
そして今、私はいくつか削除してアレイを削除しようとしています機能:
if (ptr->Link_num > 0) {
for (int i = ptr->Link_num; i > 0; --i)
delete[] ptr->Links[i];
//delete[] ptr->Links;
}
私はこのエラーを取得する:
Exception thrown at 0x50EE436B (ucrtbased.dll) in Test_10.exe: 0xC0000005: Access violation reading location 0xFDFDFDED. occurred.
に変更し、それを、それは 'int型私= ptr-> LINK_NUMすべきではない - 1' ? –
単に 'std :: vector'を使うのではなく、 'new'' delete'を使うのはなぜですか? –
ギルベイツ、そうです!この問題を解決した問題が解決しました。ありがとう) πάνταῥεῖは、問題の解決であるように見えますが、まだベクトルを使用する方法を学んでいませんでした。ありがとう) – Taxon