c语言二维数组究错

来源:百度知道 编辑:UC知道 时间:2024/06/14 23:33:26
int i,j;
int **Max=NULL;
Max=(int **)malloc(n*sizeof(int *));
for (i=0; i<n; i++)
Max[i]=(int *)malloc(m*sizeof(int));

for(i=0;i<n;i++){
for(j=0; j<m; j++){
printf("请输入进程%d对资源%d的最大需求量:",i,j);
//scanf("%d",&Max[i][j]);
cin>>Max[i][j];
}
printf("\n");
}
//运行到i=1,j=0时出现内存不可写的错误提示,不知道问题出在哪。求解答。

理论上,你给的这些,是没有问题的。
除非有些malloc返回了0

把下面几句:
Max=(int **)malloc(n*sizeof(int *));
for (i=0; i<n; i++)
Max[i]=(int *)malloc(m*sizeof(int));
换成:
Max=(int **)malloc(n*m*sizeof(int));
试试吧