c - 将函数分配给C中的函数字段

标签 c struct segmentation-fault

我正在尝试将一个函数分配给一个变量字段,但我遇到了段错误。 这是代码:

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/

相关文章:

c - 如何将 fgets 字符串结果存储到 char 数组中?

c - 错误: Lvalue required. 需要解释

c# - 将 C 转换为 C#

c - 嵌套结构的首选分配

c - 在C中输出文件时出现段错误(核心转储)错误

c - 无法将 C 程序变量绑定(bind)到 SQL Server 中的日期时间类型列

c - 递归到底是什么并解释一下这个程序的输出?

更改结构中的数据

optimization - 优化 ifort 中的 SIGSEGV

C++ 字符串流段错误