У меня есть матрица 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;
}
Нет вывода.