gpt4 book ai didi

c - 删除C中链表的第一个元素

转载 作者:行者123 更新时间:2023-11-30 16:12:03 25 4
gpt4 key购买 nike

看似简单的 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():无效指针:0xbfabb964”

我对所有其他操作函数都遵循相同的格式,没有任何问题。论坛上的类似帖子似乎没有解决这个特定问题。

最佳答案

您可以阅读此 pdf 中关于 Push 功能的解释: http://cslibrary.stanford.edu/103/

这就是 c 在心理上变得时髦的地方。您本能地希望将指针标记为指针,事实确实如此。但它是一个指针值,而不是指针引用。就好像C神域的圣灵一样。三巨头。 C 通过值而不是地址/引用将参数传递给函数。那么,如何通过引用传递变量呢?请记住,解决方案是如此明显,我对天发誓,一周以来它对我来说真的没有任何意义。

关于c - 删除C中链表的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58442346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com