我有一个矩阵M [10] [11]。在矩阵的每一行中,存储从0到R的一系列数字,其中R分别针对矩阵的每一行计算为R = random(10)。
例如,如果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
此-1存储在每一行的末尾。
然后,声明一个整数指针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;
}
无输出。