int** DATA = new int*[10];
DATA[0] = new int[100]; //works
DATA[1] = new int[100][5]; //dont work
DATA[1][100] = 1;
你好,我试图创建一个锯齿状阵列,但需要5列。感谢
答案 0 :(得分:1)
你真的需要一个锯齿状的数组(每行的列数不同)或者只需要一个二维数组,每行有5列。在这两种情况下,Ulrich建议优先使用std :: vector而不是裸阵列,你应该考虑它。
但是如果你绝对需要用C风格创建的二维数组,那么这样做的方法是
int** p = new int*[10];
for( int i=0; i<10; i++ ) {
p[i] = new int[20];
}
p[7][17] = 177;
这将创建一个包含10行和20列的2D数组,可以使用2D数组语法进行访问。