0
我有這種方法給我一個分段錯誤,我無法弄清楚。我們必須刪除與給定名稱相匹配的節點。使用節點的分段錯誤struct
typedef struct node
{
int id;
char* name;
struct node* next;
} node;
node* rem_inorder(node** head, char* key_name)
{
node* temp = *head;
int found =0;
while(temp -> next != NULL &&!found)
{
if(temp -> name == key_name){
printf("works");
found = -1;}
else {
temp = temp ->next;}}
if(found == -1)
{return temp;}
else
{return NULL;}}
沒有問題我中所示的代碼看到。在你開始使用這個功能之前,你的鏈表可能會從其他地方斷開。你做的唯一的解除引用是'temp->',這表明'* head'不好。 – yano
你的意思是說這個*頭是不好的。這只是通過列表的一個臨時變量。我還應該如何將它分配給頭部? –
我在說'* head'可能是'NULL'或者一些垃圾值,如果你確實在這個函數中出現了段錯誤。 – yano