#質問内容
C言語のポインタのポインタに関して質問です。
以下はポインタのポインタを用いて線形リストを作るプログラムです。
ポインタの動き方はわかるのですが、ポインタのポインタを使うメリットがわかりません。&headを実引数として渡さないとheadに影響を与えることができませんが、headは最初のノードを固定で指していればよく、更新の必要性がわかりません。
結局、ポインタのポインタは何のためにあるのでしょうか。
#include <stdio.h>
#include <stdlib.h>
typedef struct CELL{
int data; struct CELL *next;
} CELL;
CELL * CELL_alloc(int data){
CELL *p=malloc(sizeof(CELL));
p->data=data; p->next=NULL; return p;
}
void insert(CELL **head_p,int data){
CELL *new=CELL_alloc(data);
CELL **p=head_p;
while(*p!=NULL && (*p)->data<data){
p=&((*p)->next);
}
new->next=*p;
*p=new;
}
int main(){
CELL *head=NULL;
insert(&head,10);
insert(&head,30);
insert(&head,20);
}

回答1件
あなたの回答
tips
プレビュー