当我做:
t_node *node1;
t_node **head;
void *elem;
int c = 1;
elem = &c;
head = NULL;
node1 = malloc(sizeof(t_node));
node1->elem = elem;
head = &node1;
//add_node(node1,head); //substitute this with line above and it doesn't work
printf("%d\n",*(int*)(*head)->elem); // prints 1 and works fine
但是当我创建一个名为 ADD_NODE 的函数时它不起作用?!??!?
void add_node(t_node *node1, t_node **head){
head = &node1;
}
这对我来说没有任何意义......为什么这会导致它不起作用?从字面上调用该函数会执行相同的代码。
编辑:请记住 add_node 的签名没有问题。我必须有那个签名