为什么这个链表初始化不起作用?

时间:2018-05-23 22:37:21

标签: c string pointers struct linked-list

我尝试使用指向body { background-color: blue; } #some-text { color: red; z-index: 3; position: relative; } #display { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-image: url('http://via.placeholder.com/350x150'); z-index: 2; height: 100%; width: 100%; }的空节点初始化(或创建)链接列表,但它返回错误并且我不知道原因。有人可以帮帮我吗?

<body>
  <div id="some-text">TEXT</div>
  <div id="display"></div>
</body>

1 个答案:

答案 0 :(得分:1)

所以node实际上是指向struct node的指针,非常令人困惑

typedef struct node* node;

main()中,您声明一个指针,并将指针传递给指向mklist()的指针

node n;
mklist(&n);

mklist()中,n实际上是一个指向结构的指针,因此解析它,你得到一个指向结构的指针

void mklist(node* n){
    (*n)->times=0;

但您的代码中没有为实际结构分配内存。

目前代码的最简单方法是添加malloc()

void mklist(node* n) {
    *n = malloc(sizeof(*(*n)));
    // check for malloc() failure

    (*n)->times = 0;
    strcpy((*n)->name, "null");
    strcpy((*n)->number, "null");
    (*n)->next = (node)NULL;
}