這裏是我的代碼:段錯誤在我的鏈接列表實現
#include <stdio.h>
typedef struct node_struct {
int data;
struct node_struct *next;
} node;
void push(node *top, int data) {
node *new_node = (node*) malloc(sizeof(node));
new_node->data = data;
new_node->next = top;
top = new_node;
}
int main() {
node *top = (node*) malloc(sizeof(node));
top->data = 1;
printf("Set data of top node to: %d\n", top->data);
push(top, 2);
printf("Pushed 2 to top, top->next->data = %d\n", top->next->data);
}
在第三屆最後一行(push(top, 2);
)程序段錯誤,我想就行了top = new_node;
我剛學C(指針馬上)。
我做錯了什麼?
在附註中,您沒有初始化頂端節點的'next'元素(分配後)。將它設置爲NULL以知道它是你列表的最後一個元素(因爲你的push函數將元素放在列表的頂部) – Zoneur