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