gpt4 book ai didi

C 将节点添加到链表的头部

转载 作者:行者123 更新时间:2023-12-02 05:28:39 25 4
gpt4 key购买 nike

我在c中创建了一个链表结构

struct node{
int value;
struct node* next;
};

在列表开头添加节点的方法:

void addFirst(struct node *list, int value){
struct node *new_node = (struct node*) malloc (sizeof (struct node));
new_node->value = value;
new_node->next = list;
list = new_node;
}

我创建了一个列表(malloc 和所有内容),然后调用这个方法,它在方法中添加了新节点,但是当我回到我的主列表时,我的旧列表保持不变。使用 DDD 调试器检查所有内容。这怎么可能?我无法更改方法签名,因此必须这样做。

最佳答案

如果你真的需要这样做,你必须重新转换指针。像这样:

struct node *my_list = null;
addFirst((struct node *)&my_list, 123);

void addFirst(struct node *list, int value){
struct node **real_list = (struct node **)list;
struct node *new_node = (struct node*) malloc (sizeof (struct node));
new_node->value = value;
new_node->next = *real_list;
*real_list = new_node;
}

关于C 将节点添加到链表的头部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12674616/

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