矩阵打印不正确,有谁能告诉我哪里出错了?
int i , j;
int n =0 , m =0;
int p =0 , q =0;
int matrix1[n][m];
int matrix2[p][q];
printf("ENTER THE NUMBER OF ROWS AND COLUMNS IN 1st MATRIX\n");
scanf ("%d%d",&n,&m);
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
printf ("ENTER THE matrix1[%d][%d]: ",i,j);
scanf ("%d",&matrix1[i][j]);
}
我相信这就是问题所在。
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
printf ("%d ",matrix1[i][j]);
}
printf ("\n");
}
答案 0 :(得分:0)
如果您希望内存存储仅在运行时知道其大小的对象,我建议您根据需要分配它,使用以下代码
int i, j;
int n, m;
int **matrix;
printf("ENTER THE NUMBER OF ROWS AND COLUMNS IN 1st MATRIX\n");
scanf ("%d%d",&n,&m);
matrix = malloc(sizeof(int *) * n);
if (!matrix) {/* no memory; handle it */}
for (i=0; i<n; i++)
matrix[i] = malloc(sizeof(int) * m);
for (j=0; j<m; j++)
{
printf ("ENTER THE matrix[%d][%d]: ",i,j);
scanf ("%d",&matrix[i][j]);
}
不要忘记释放你的记忆
for (i = 0; i < n; i++)
free(matrix[i]);
free(matrix);