Попытка создать неровный массив Переполнение стека

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

DATA[1][100] = 1;

привет, я пытаюсь создать неровный массив, но нужно 5 столбцов. Спасибо

-3

Решение

Вам действительно нужен зубчатый массив (разное количество столбцов для каждой строки) или просто двумерный массив с 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-массива.

1

Другие решения


По вопросам рекламы [email protected]