int** DATA = new int*[10];
DATA[0] = new int[100]; //works
DATA[1] = new int[100][5]; //dont work
DATA[1][100] = 1;
привет, я пытаюсь создать неровный массив, но нужно 5 столбцов. Спасибо
Вам действительно нужен зубчатый массив (разное количество столбцов для каждой строки) или просто двумерный массив с 5 столбцами для каждой строки. В обоих случаях совет Ульриха о предпочтении std :: vector вместо пустых массивов хорош, и вы должны это учитывать.
Однако, если вам абсолютно необходим двумерный массив, созданный в стиле C, способ сделать это
int** p = new int*[10];
for( int i=0; i<10; i++ ) {
p[i] = new int[20];
}
p[7][17] = 177;
Это создаст 2D-массив с 10 строками и 20 столбцами, к которым можно получить доступ с использованием синтаксиса 2D-массива.