[英]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.