我是一个c ++新手.在学习的过程中我遇到了这个.
如果我有这样的指针
int (*a)[2][3]
cdecl.org将此描述为 declare a as pointer to array 2 of array 3 of int:
当我尝试
int x[2][3];
a = &x;
这很有效.
我的问题是我a在使用new()时如何初始化
a = new int [] [];
我试过一些组合但是没有把它弄得很对.
任何帮助将不胜感激.
您必须分两步完成 - 首先分配指针数组(动态分配的数组),然后依次分配每个指针.总的来说,我认为更好的选择就是使用std::vector- 这是C++做这种事情的首选方式.
这里仍然是一个如何实现你想要的例子:
int a**;
a = new int*[2];
for (int i =0; i< 2;++i){
a[i] = new int[3]
}
... use them ...
// Don't forget to free the memory!
for (int i = 0; i< 2; ++i) {
delete [] a[i];
}
delete [] a;
Run Code Online (Sandbox Code Playgroud)
编辑:并按照默认要求 - 矢量版本:
std::vector<std::vector<int> > a(2, std::vector<int>(3,0));
// Use a and C++ will take care to free the memory.
Run Code Online (Sandbox Code Playgroud)