Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 二维阵列中的动态内存分配_C_Malloc_Scanf - Fatal编程技术网

C 二维阵列中的动态内存分配

C 二维阵列中的动态内存分配,c,malloc,scanf,C,Malloc,Scanf,scanf的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));

scanf的
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;
int**arr,m,n,i,j;
scanf(“%d%d”,&m,&n);
arr=(int**)malloc(m*sizeof(int*);
对于(i=0;i
有一个严重的打字错误:

  arr[m] = (int *) malloc(n*sizeof(int));
应该是

  arr[i] = malloc(n * sizeof(int));

关于
(*arr)[i][j]
?请给出一个简单的输入格式示例。@timrau首先我希望用户分别在m和n变量中输入行数和列数,然后我尝试为它们分配内存。然后用户将输入numbers@timrau是的,我也加入了与实际问题无关的内容,但我尝试了&arr[i][j]同样,它也不起作用。我的调试器在此语句处停止。我使用malloc的方式是否有问题?看起来我使用的地址是错误的,因为您调用
malloc
的方式看起来很好,我们需要您的输入格式来诊断问题。调试器停止时有任何消息吗?它正在等待您的输入吗错误waa like:spiral.exe中0x0f75effe处的未处理异常:0xC0000005:访问冲突写入位置0xcdcdcdcd。首先,我希望用户分别在m和n变量中输入行数和列数,然后我尝试为它们分配内存。然后,用户将输入数字示例:3 4 1 2 3 4 5 6 7 8 9 10 11 12,其中3和4不是行和列