如何使用new声明二维数组?
就像,对于"普通"数组,我会:
int* ary = new int[Size]
Run Code Online (Sandbox Code Playgroud)
但
int** ary = new int[sizeY][sizeX]
Run Code Online (Sandbox Code Playgroud)
a)不工作/编译和b)没有完成什么:
int ary[sizeY][sizeX]
Run Code Online (Sandbox Code Playgroud)
确实.
我正在编写C代码,我想堆分配512*256字节.为了方便起见,我希望能够使用语法数组[a] [b]访问元素; 没有算术来找到正确的索引.
我在网上看到的每个教程都告诉我要创建一个指针数组,指向我在数组中想要的行数组.这意味着每个子数组都需要单独进行malloc和free.我感兴趣的,只需要调用一次malloc和一个呼叫免费的解决方案.(因此,所有的元素是连续的),我认为这是可能的,因为我不会构建一个交错的数组.
如果有人可以分享声明这样一个数组的语法,我将不胜感激.
我正在Linux中编写一些C++代码,我已经声明了一些2D数组,如下所示:
double x[5000][500], y[5000][500], z[5000][500];
Run Code Online (Sandbox Code Playgroud)
在编译期间没有错误.当我执行它时说"分段错误".
Wen我将数组的大小从5000减少到50,程序运行正常.我该如何保护自己免受这个问题的影响?