【发布时间】:2014-05-15 15:59:16
【问题描述】:
我在下面的代码中遇到了非常令人沮丧的错误。那是我的数组。
int **tab2 = new int*[3];
我喜欢这样分配。
for(i = 0; i < 10; i++) {
tab2[i] = new int[3];
tab2[i][0] = 40;
tab2[i][1] = 10;
tab2[i][2] = 100;
}
然后在使用它之后我想销毁它。
for(i = 0; i < 10; i++) {
delete [] tab2[i];
}
delete [] tab2;
这每次都会导致核心转储。我尝试了许多不同的方法来破坏它,每次都得到这个错误。我在这里做错了什么?
【问题讨论】:
-
您的代码中的一切都是错误的。目的是什么?
-
当然,这只是说明我想要做什么的划痕。正如我所说,我想获得有关如何正确销毁它的信息。
-
你的分配首先是错误的。
-
我不明白为什么人们继续对好问题投反对票。虽然他犯了一些技术错误,但 SO 不仅适用于
experts。 @10101101 你的问题很好。为它 +1。 -
tab2 的大小为 3,然后您将 10 个东西放入其中。
标签: c++ arrays memory-management