c-附加到链接列表时出现分段错误



我正在尝试创建一个链表,但到目前为止,我一直遇到分段错误。

通过一些测试,我设法找到了它发生的地方,但我不确定为什么会发生。

它在以下行触发:tempo->fileName = str;
是因为我试图对指针进行赋值,还是因为我不知道其他原因?

typedef struct listnode{
struct listnode* next;
char* fileName;
} listnode;
struct listnode* head;
//This section of code will be dedicated to the creation and management
//of the listnode functions
listnode* createNode(char* str, listnode* next){
listnode* tempo;
tempo = (listnode*)malloc(sizeof(struct listnode));
if(tempo = NULL){
printf("Error creating space for new node.n");
exit(0);
}
tempo->fileName = str;
tempo->next = next;
return tempo;
}

条件if(tempo = NULL)中存在错误。不是比较tempo == NULL,而是分配tempo = NULL。然后执行tempo->fileName = str,这实际上是在访问NULL指针。仅仅因为你在写一个条件,它不会使=运算符成为相等运算符,它仍然是一个赋值运算符。比较运算符为==

将条件更改为:

if(tempo == NULL)

相关内容

  • 没有找到相关文章

最新更新