c++ - 如何将值放入数组的动态数组中并在 C++ 中删除它们

标签 c++ arrays pointers dynamic delete-operator

请记住,我不能使用类或 vector ,只能使用数组。

无论如何,到目前为止我有这样的事情:

int** arrays = new int*[10]; 
arrays[0] = new int[99]; 
arrays[1] = new int[47]; 

我不完全确定,但我认为可以将值放入数组中,并以与二维数组相同的方式指向该数组。

那么这样的东西行得通吗?

arrays[1][30] = 5;

此外,如果我想删除其中一个数组(不是数组指针),是否可以这样做:

delete[] arrays;

最佳答案

在 C++ 中,对 new 的每个调用都应该有对 delete 的匹配调用。所以当你初始化数组时

int **arrays = new int*[10];
arrays[0] = new int[99]; 
arrays[1] = new int[47];

你必须删除它

delete [] arrays[0];
delete [] arrays[1];
delete [] arrays;

一般情况下阅读this答案和整个线程。

调用

arrays[1][30] = 5;

很好,因为已经分配了内存。

关于c++ - 如何将值放入数组的动态数组中并在 C++ 中删除它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25675756/

相关文章:

c++ - 通过继承类使用来自不同 namespace 的运算符?

c++ - 试图通过指针访问嵌套类的成员函数

ios - swift ios 追加元素到数组

c - 为什么我不能直接在 C 中将数组分配给指针?

c - 为什么字符数组在 C 中通过引用传递?

c++ - 大小如何与 memcpy 一起使用?

c++ - 具有 FIONREAD 返回值的 ioctl

c++ - 发布安全、宽松的内存模型和 memcpy

java - 在java中,当我们只知道组件类时如何构造数组

javascript - 将 2 个值分配给整个键数组