相关疑难解决方法(0)

如何使用new在C++中声明二维数组?

如何使用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++ arrays multidimensional-array dynamic-allocation

496
推荐指数
14
解决办法
87万
查看次数

堆分配一个2D数组(不是指针数组)

我正在编写C代码,我想堆分配512*256字节.为了方便起见,我希望能够使用语法数组[a] [b]访问元素; 没有算术来找到正确的索引.

我在网上看到的每个教程都告诉我要创建一个指针数组,指向我在数组中想要的行数组.这意味着每个子数组都需要单独进行malloc和free.我感兴趣的,只需要调用一次malloc和一个呼叫免费的解决方案.(因此,所有的元素是连续的),我认为这是可能的,因为我不会构建一个交错的数组.

如果有人可以分享声明这样一个数组的语法,我将不胜感激.

c malloc multidimensional-array

25
推荐指数
4
解决办法
1万
查看次数

大型2D阵列给出了分段故障

我正在Linux中编写一些C++代码,我已经声明了一些2D数组,如下所示:

 double x[5000][500], y[5000][500], z[5000][500];
Run Code Online (Sandbox Code Playgroud)

在编译期间没有错误.当我执行它时说"分段错误".

Wen我将数组的大小从5000减少到50,程序运行正常.我该如何保护自己免受这个问题的影响?

c++ linux stack-overflow

23
推荐指数
4
解决办法
3万
查看次数