Linked List の add 関数を書いているときに、次のコードを思いつきました
int addNode(node ** head)
{
1. node * ptr = *head;
if(ptr==NULL)
{
ptr = (node *)malloc(sizeof(node));
ptr->next = NULL;
ptr->val = (char *)malloc(10);
strcpy(ptr->val,"1");
2. *head = ptr;
}//Rest omitted
ポインターからポインターへの私の理解が進む限り、この関数を呼び出すと
addNode(&n)
(n はノード * n として定義されます) ポインター n のアドレスを送信します。head = &n 今のところ? 1 で、ptr が n を指すようにします。つまり、ptr = &n? そうですか?私が理解できないのは、なぜ *head = ptr を設定する必要があるのですか? ptr はすでに n を直接変更していませんか? そして、ptr と *head の両方が n を指していませんか?
ありがとう!