【发布时间】:2017-10-05 14:04:40
【问题描述】:
我正在尝试创建一个包含 10 个节点的列表并分配值 1 到 10 并打印它们。我使用以下代码进行了尝试,但最终出现分段错误。
我对 C 中的链表很陌生。
#include<stdio.h>
typedef struct Node
{
int data;
struct Node *next;
}Node_Struct;
int main(void)
{
int i =0;
Node_Struct* Node = NULL;
Node = (Node_Struct*)malloc(sizeof(Node_Struct));
for (i = 1; i<=10; i++){
Node->data = i;
Node = Node->next;
}
for (i = 1; i<=10; i++){
printf("\n Node->data:%d",Node->data);
Node = Node->next;
}
return 0;
}
【问题讨论】:
-
您“可能”需要初始化和分配每个节点,而不仅仅是头部。
-
您创建了一个节点,然后尝试遍历 9 个不存在的节点。
-
使用
Node= Node->next;,您可以转到下一个节点,但您忘记了列表的开始位置,通常称为head。 -
侧节点:你忘了
#include <stdlib.h>
标签: c linked-list segmentation-fault