関数への単一ポインターの代わりに二重ポインターを渡すことを意図した多くのリンクリスト関数とC関数に遭遇しました。たとえば、リンクリストへのソートされた挿入のための以下の関数:
void sortedinsert(struct node **headref,struct node *newnode)
{
while(*headref!=NULL&&(*headref)->data<newnode->data)
headref=&((*headref)->next);
newnode->next=headref;
*headref=newnode;
}
シングルポインタの代わりに関数の引数としてダブルポインタを使用する方法と、リンクリストに対して上記のように関数を簡単に記述できる方法について説明してください。