struct node {
struct node *next;
int num;
} Node;
Node *insert(int i) {
Node *head;
for (int c = 0; c < i; c++) {
head = malloc(sizeof(Node));
head.num = i;
head = head->next;
}
}
插入函數應該創建一個鏈表,並將從0到i的數字添加到該鏈表中。但是,它也應該返回一個指向列表/列表本身開始的指針,我似乎無法弄清楚如何去做。我試過製作一個指針並在添加第一個節點後將其設置爲等於head,但它只返回第一個節點而不是整個列表。有人可以幫忙嗎?謝謝。添加節點後返回指向鏈接列表開頭的指針?
你最大的問題是你沒有給head-> next分配任何值,所以你根本就沒有創建鏈表,只是一堆節點在空間中漂浮 – happydave
我不確定我理解。因爲我正在重新分配頭部,head-> next的num值不會是1嗎?所以它會是一個0-> 1-> 2-> 3 .....-> c的鏈表,對嗎? –
當你分配'head = head-> next;'你分配一個未初始化的指針到你剛分配的指針上。你泄漏了內存並存儲了一個未定義的指針。你有大問題。該函數也應該返回一個值,但不是。 –