猿问

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

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

如何使用new声明二维数组?

就像,对于“普通”数组,我会:

int* ary = new int[Size]

int** ary = new int[sizeY][sizeX]

a)不工作/编译和b)没有完成什么:

int ary[sizeY][sizeX]

确实。


慕无忌1623718
浏览 2132回答 4
4回答

湖上湖

int** ary = new int[sizeY][sizeX]应该:int **ary = new int*[sizeY];for(int i = 0; i < sizeY; ++i) {&nbsp; &nbsp; ary[i] = new int[sizeX];}然后清理将是:for(int i = 0; i < sizeY; ++i) {&nbsp; &nbsp; delete [] ary[i];}delete [] ary;编辑:正如Dietrich Epp在评论中指出的那样,这并不是一个轻量级的解决方案。另一种方法是使用一个大的内存块:int *ary = new int[sizeX*sizeY];// ary[i][j] is then rewritten asary[i*sizeY+j]
随时随地看视频慕课网APP
我要回答