我尝试了一切,据我所知,这段代码是正确的,但它仍然给我的段错误。帮忙?
#include <stdio.h>
#include<malloc.h>
void da(int ***array, int row, int col){
int i;
*array=(int **)malloc(sizeof(int *)*row);
for (i=0; i<row; i++)
*array[i]=(int *)malloc(sizeof(int)*col);
}
main(){
int **array;
int i,n,m;
printf("Input number of rows: ");
scanf("%d",&n);
printf("Input number of columns: ");
scanf("%d",&m);
da(&array,n,m);
for (i=0; i<n; i++)
free(array[i]);
free(array);
}
最佳答案
运算符 []
比运算符 *
具有更高的优先级。
将括号放在:(*array)[i]=(int *)malloc(sizeof(int)*col);
关于c - 动态多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612574/