1
我想在這裏刪除沒有結果的2D數組。刪除2D_array錯誤
我有這樣的結構:
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 I = ptr-> LINK_NUM - 1' ? –
你爲什麼要搞亂'new'' delete'而不是簡單地使用'std :: vector'? –
吉爾貝茨,你是對的!問題解決了改變這種情況。謝謝) πάνταῥεῖ似乎是解決問題的方法,但並未學會如何使用矢量。謝謝) – Taxon