簡體   English   中英

當我嘗試從單鏈表中刪除節點時,為什么我的 C 程序崩潰

[英]Why does my C Program crash when I try to delete a node out of a singe linked list

我目前正在 C 中創建一個程序,它基本上是一個鏈表內的鏈表。 內部列表是字符,外部列表是單詞。 不幸的是,我在刪除一些外部節點(單詞)和釋放它們的 memory 時遇到問題。 我的程序不斷崩潰,我不知道為什么。 編譯器沒有給我任何警告或錯誤,我一直在尋找修復幾個小時。 任何可以查看代碼的人都可以得到任何幫助! 謝謝!

*void deleteWord (Node* Node, int index){
int counter = 0;
if (Node == NULL)
    return;

while (Node->next != NULL && counter != (index - 1)){
    Node = Node->next;
    counter++;
}
struct node* wordTemp = Node->next;
//Node->next = Node->next->next;

while (wordTemp->word != NULL){
    InnerNode* letterTemp = wordTemp->word->next;
    free(wordTemp->word);
    wordTemp->word = letterTemp;
}
free(wordTemp);
return;
}

似乎您正在釋放 Node->next(存儲在 wordTemp 中),而沒有重新分配它,基本上破壞了鏈表中的鏈接,所以現在 Node->next 指向已刪除的 memory。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM