Проблема в объявлении двумерных массивов с фиксированными строками и неизвестным количеством столбцов. - PullRequest
0 голосов
/ 15 мая 2019

У меня есть матрица M [10] [11].В каждой строке матрицы хранят серии чисел от 0 до R, где R рассчитывается как R = random (10) для каждой строки матрицы отдельно.Например, в строке 5, если R=4

M[5][0]=0
M[5][1]=1
M[5][2]=2
M[5][3]=3
M[5][4]=4
M[5][5]=-1

Это значение сохраняется в конце каждой строки.

Затем объявите массив указателей int A [10].данные из каждой строки матрицы M и подсчитать количество целочисленных значений, хранящихся в этой строке (включая -1).Выделите память динамически для хранения такого количества значений и сохраните выделенный адрес памяти в соответствующем элементе массива массива указателей.Затем скопируйте содержимое M в A. Таким образом, A [5] имеет 6 значений 0,1,2,3,4, -1.

Я застрял в распределении памяти.Пытался выделить память вот так.Не уверены, что это правильно

A[i]=new int [j+1];

См. Код ниже:

int M[10][11], R, *A[10];
srand(time(0));
for (int i = 0; i<10; i++)
{
    R = 1 + (rand() % 10);
    for (int j = 0; j <= R; j++)
        M[i][j] = j;
    M[i][R + 1] = -1;
}
for (int i = 0; i<10; i++)
{
    for (int j = 0;; j++)
    {
        if (M[i][j] == -1)
            A[i] = new int[j + 1];
    }
}
for (int i = 0; i<10; i++)
{
    for (int j = 0;; j++)
    {
        A[i][j] = M[i][j];
        cout << A[i][j] << "\t";
    }
    cout << endl;
}

Нет вывода.

...