我正在尝试将一个函数分配给一个变量字段,但我遇到了段错误。 这是代码:
typedef struct node{
int info;
struct node *link;
void* (*make) (int x);
}node;
void* make_node(int x)
{
node* new_node = (node*)malloc(sizeof(node));
new_node->info = x;
new_node->link = NULL;
return new_node;
}
int main(){
struct node *n;
n->make = make_node;
return 0;
}
有什么问题吗?
最佳答案
您需要为堆上的节点分配一些空间,或者只使用结构的普通变量而不是指针。
关于c - 将函数分配给C中的函数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10056217/