我對理解這個整體概念有困難。混淆了我的主要問題是結構體內部的指針......基本上我所理解的是我想創建一個節點鏈。在C中新增節點,如何修復結構?
當我運行這個程序時,它在兩秒鐘後崩潰。我相信有什麼毛病我的結構main.c中,因爲我已經被自己創造了它,你可以看到我真是小鹿斑比如履薄冰看過來......
main.c中
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include "list.h"
// I guess my struct is not correct
static struct {
LIST node;
int item;
} node;
int main() {
list_create();
list_append(node.node, node.item);
}
list.h
typedef struct node* LIST;
LIST list_create (void);
void list_append (LIST l, int item);
list.c
struct node* list_create() {
struct node* head = (struct node*) malloc(sizeof (struct node));
head->next = NULL;
return head;
}
void list_append(struct node* n, int item)
{
/* Create new node */
struct node* new_node = (struct node*) malloc (sizeof (struct node));
new_node->item = item;
/* Find last link */
while (n->next) {
n = n->next;
}
/* Joint the new node */
new_node->next = NULL;
n->next = new_node;
}
我應該輸入'node.node = list_create();'?我很迷茫...... – user3241763