gpt4 book ai didi

c - 尝试更改链表节点中的数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:29 25 4
gpt4 key购买 nike

我已将数据(从 1.0 到 9.0 的 double 值)添加到我的每个节点。现在我试图访问每个数据以修改它,以便每个节点中的 double 值都是负数(-1.0 到 -9.0):

void traverseList(struct List *list, void (*func) (void *)) {
struct Node *current = list->head;
while(current) {
func(current->data);
current = current->next;
}
}

void changeToNegative(void *data) {
double newData = *((double*)data) * -1.0;
data = &newData;
}

我正在调用上面的代码:

traverseList(&list, &changeToNegative);
traverseList(&list, &print);

但是,它仍然只打印出正值...我正在为数据重新分配一个新的内存位置,所以我不明白它为什么仍然指向旧的内存位置。任何帮助表示赞赏!

最佳答案

修改您的代码如下。而不是将指针分配给数据分配值,如下所示

void changeToNegative(void *data) {
double newData = *((double*)data) * -1.0;
*data = newData;
}

通过这种方式,您将修改数据指向的值,并且更改将持久化。

关于c - 尝试更改链表节点中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15179785/

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