我如何在C ++中删除指向数组的指针

问题描述 投票:0回答:3

我想知道如果要删除这样初始化的数组,如何使用删除运算符:

int (*my_ptr)[10] = new int[3][10];

这似乎无效:

delete[][]
c++ memory-leaks delete-operator
3个回答
1
投票

new int[3][10]只是简单地创建一个动态数组,其元素本身就是数组。删除方式与所有动态数组相同:delete[]


1
投票

my_ptr是10个元素的数组。每个元素都是int[3]类型。

您致电delete[] my_ptr;删除那10个元素。


-2
投票

您是正确的。您实际上必须删除every数组:

for (size_t i = 0; i < 10; ++i) {
    delete[] my_ptr[i];
}

delete[] my_ptr;
© www.soinside.com 2019 - 2024. All rights reserved.