上下文
这是我的密码
typedef struct {
int m;
int (*v)(int *restrict a);
} polo;
int toto(int *restrict a){
printf("hello %d\n",*a);
}
int main()
{
polo *kilo;
kilo->m = 84;
kilo->v = toto;
kilo->v(&kilo->m);
return 0;
}
问题
塞格法特。
我不明白为什么如果kilo不再是指针,同样的代码也可以工作(马球公斤;公斤.m=…)。
你能解释一下吗?
谢谢
最佳答案
您需要为kilo
预留空间:polo *kilo = malloc(sizeof(*kilo));
或polo *kilo = malloc(sizeof(polo));
别忘了在最后打电话给free(kilo);
。
关于c - c-将结构变量传递给函数:segfault,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24992367/