试图创建一个锯齿状的数组c ++

时间:2015-02-21 16:57:48

标签: c++ jagged-arrays

int** DATA = new int*[10];
DATA[0] = new int[100];    //works
DATA[1] = new int[100][5]; //dont work 

DATA[1][100] = 1;

你好,我试图创建一个锯齿状阵列,但需要5列。感谢

1 个答案:

答案 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数组语法进行访问。