簡體   English   中英

刪除 C 中鏈表的第一個元素

[英]Removing First element of linked list in C

看似簡單的 C 代碼似乎不允許我從鏈表中刪除第一個元素。 但是,我可以成功刪除任何其他單個元素,並且可以成功刪除整個鏈接列表。

typedef struct list{
    int data;
    struct list * next; 
} list;

void remove_element(list * node, unsigned int index){
    if (node == NULL)
        exit(-1);

    list *currElem = node;

    if (index == 0) {
        node = node->next;
        currElem->next = NULL;
        free(currElem);
        return;
    }

產生以下內容:“free(): invalid pointer: 0xbfabb964”

我對所有其他操作功能都遵循了相同的格式,沒有任何問題。 論壇上的類似主題似乎沒有處理這個特定問題。

您可以在 Push function 上閱讀此 pdf 中的說明: http://cslibrary.stanford.edu/103/

這就是 c 在心理上變得時髦的地方。 你本能地想把 label 一個指針當作一個指針,它就是這樣。 但它是一個指針值,而不是指針引用。 這就像C神性的聖靈。 三巨頭。 C 通過值而不是地址/引用將 arguments 傳遞給函數。 那么,如何通過引用傳遞變量呢? 請記住,解決方案是如此明顯,一個星期對我來說真的沒有意義,我向上帝發誓。

暫無
暫無

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

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