gpt4 book ai didi

c++ - 初始化和删除二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:43 25 4
gpt4 key购买 nike

我看过其他几个线程,但似乎无法弄清楚如何删除二维数组。

这是我初始化数组的方式。 num_itemscapacity 是预先确定的变量:

int **P = new int *[num_items]; 
for (x = 0; x <= num_items; x++)
P[x] = new int[capacity];

这是我认为我应该删除它的方式,但是它崩溃了:

for(x = 0; x <= num_items; x++)
delete [] P[x];
delete [] P;

澄清一下,我希望数组 P 包含 1 个额外的 num_items。因此,如果 num_items = 7,那么我希望数组大小为 8,以便 P[7] 有效。

最佳答案

您的评论“不需要将 +1 添加到 num_items”和您对 for 循环的实现相互矛盾。

请记住,数组是从 0 开始的,因此 P 的有效索引从 0 到但不包括 num_items。但是,在您的 for 循环中,x 取值 0 到并包括 num_items

因此,修复是可能的

for (x = 0; x < num_items; x++)
/* whatever */

综上所述,您可以改用 std::vector 实例吗?那么,您就不必担心这种内存管理。

关于c++ - 初始化和删除二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com