【发布时间】:2014-03-19 14:10:23
【问题描述】:
scanf 声明给我带来了麻烦。我试过用&arr[i][j] 和(arr+i)+j 代替*(arr+i)+j。但是,这种说法仍然存在问题。这是我的代码:
int **arr, m, n, i, j;
scanf("%d%d", &m, &n);
arr = (int **) malloc( m * sizeof(int *) );
for (i = 0; i < m; i++)
arr[m] = (int *) malloc(n*sizeof(int));
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
scanf("%d", *(arr + i) + j); //this statement
for(i = 0; i < m; i++) {
for(j = 0; j < n; j++) {
printf("%d ", *(*(arr + i) + j));
printf("\n");
}
getch();
return 0;
【问题讨论】:
-
(*arr)[i][j]呢? -
请展示一个简单的输入格式示例。
-
@timrau 首先我希望用户在 m 和 n 变量中分别输入行数和列数,然后我尝试为它们分配内存。然后用户将输入数字
-
@timrau 是的,我也包括了
-
与实际问题无关,但don't cast malloc。