上下文
这是我的代码
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 不再是指针,则相同的代码仍然有效。 (马球公斤;kilo.m=...)。
你能解释一下吗?
谢谢
最佳答案
您需要预留公斤
的空间:
polo *kilo = malloc(sizeof(*kilo));
或
polo *kilo = malloc(sizeof(polo));
不要忘记在最后调用 free(kilo);
。
关于c - 将结构变量传递给函数 : segfault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24992367/