我已将数据(从 1.0 - 9.0 的双值)添加到我的每个节点。现在我正在尝试访问每个数据以修改它,以便每个节点中的双精度值都是负数(-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);
但是,它仍然只打印出正值...我正在为数据重新分配一个新的内存位置,所以我不明白它如何仍然指向旧的内存位置。任何帮助表示赞赏!