【发布时间】:2020-06-23 19:19:30
【问题描述】:
我正在尝试创建一个简单的程序来向链表添加值。 代码确实编译没有错误。 尝试执行文件时出现分段错误。 我尝试使用 printf 语句进行调试,但在任何地方都没有得到任何输出。 有人可以指出我做错了什么。
typedef 结构在单独的 .h 文件中,包含文件也在单独的 .h 文件中
typedef struct s_list
{
struct s_list *next;
void *data;
} t_list;
void list_push_front(t_list **begin_list, void *data)
{
t_list *l;
l = (t_list*)malloc(sizeof(t_list));
if(l == NULL){
printf("No allocation");
}
printf("%s\n", l->data);
l->data = data;
l->next = *begin_list;
*begin_list = l;
printf("%s\n", l->data);
}
int main(void)
{
t_list *k;
k = (t_list*)malloc(sizeof(t_list));
if(k == NULL){
printf("No allocation");
}
printf("allocation");
char s[] = "Woow!";
k->data = "Hello";
k->next->data = NULL;
// k->next->next->data = NULL;
list_push_front(&k, s);
return(0);
}
【问题讨论】:
-
k->next未初始化时,为什么要寻址k->next->data?
标签: c struct linked-list undefined-behavior singly-linked-list