<分区>
这是我的代码。我的目的是在运行时将内存分配给 2D array,直到输入中给出的任何大小。
为什么会发生段错误?是不是因为数组元素必须连续存储,而malloc(动态分配)不允许这种情况发生? 或 我在编写这段代码时犯了一些错误。请指导我完成。 提前致谢。
int main(){
// STEP 1
int size,**arr,i=0,j=0;
printf("Enter the size of matrix : ");
scanf("%d",&size);
// STEP 2
arr = (int**)malloc(size*size*sizeof(int));
printf("\n Enter the %d elements : \n",size*size);
for(i=0;i<size;i++){
for(j=0;j<size;j++){
// STEP 3
scanf("%d",&arr[i][j]);
}
}
/*
for(i=0;i<size;i++){
for(j=0;j<size;j++){
printf("%d\n",matrix[i][j]);
}
}
*/
return 0;
}