繁体   English   中英

2D数组中的动态内存分配

[英]Dynamic memory allocation in 2d array

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[m] = (int *) malloc(n*sizeof(int));

应该

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM