私がする時:
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の署名は問題になっていないことに注意してください。その署名が必要です