如何使用new在C ++中声明二维数组?如何使用new声明二维数组?就像,对于“普通”数组,我会:int* ary = new int[Size]但int** ary = new int[sizeY][sizeX]a)不工作/编译和b)没有完成什么:int ary[sizeY][sizeX]确实。
4 回答
湖上湖
TA贡献2003条经验 获得超2个赞
int** ary = new int[sizeY][sizeX]
应该:
int **ary = new int*[sizeY];
for(int i = 0; i < sizeY; ++i) {
ary[i] = new int[sizeX];
}
然后清理将是:
for(int i = 0; i < sizeY; ++i) {
delete [] ary[i];
}
delete [] ary;
编辑:正如Dietrich Epp在评论中指出的那样,这并不是一个轻量级的解决方案。另一种方法是使用一个大的内存块:
int *ary = new int[sizeX*sizeY];
// ary[i][j] is then rewritten as
ary[i*sizeY+j]
- 4 回答
- 0 关注
- 2131 浏览
添加回答
举报
0/150
提交
取消