【发布时间】:2020-02-05 17:41:40
【问题描述】:
你能在scanf之后得到双指针输入吗?这是错的吗?我已经在主函数中分配了数组。
void input(int **array, int x, int y){
int s,t;
printf("array element:\n");
for(s = 0; s < x; s++){
for(t = 0; t < y; t++){
scanf("%d", array[s][t]);
}
}
} ```
【问题讨论】:
-
**array不是数组 -
是的,但是
array[s][t]是int,而scanf需要的是对象的地址,而不是对象本身,所以使用&array[s][t](int *)。跨度> -
这只是一个错字,你错过了
&。 -
用
gcc -Wall -Wextra编译你会看到错误。 -
你
malloc到底做了什么?如果它是int的单个二维数组的空间,则int **array参数将与它不兼容。它需要一个int *数组(指向第一个元素的指针),每个int *都指向一个int数组。
标签: c segmentation-fault double-pointer