私はリンクリストコードを練習しています。以下はそのための挿入機能である:私はvoid
を返す場合元の値は参照渡し中に変更されませんか?
Node* insert_at_pos(Node *head, int pos){
struct Node *ptr=NULL;
printf("enter data\n");
ptr=(Node*) malloc(sizeof(Node));
scanf("%d",&ptr->data);
ptr->next=NULL;
if (pos==0){
if (head==NULL){
head=ptr;
return head; //return that I want to remove
}
}
printf("done\n");
}
代わりNode*
を返すので、私は私が参照によって渡した値ですので、このコードはまだ動作するはずだと思います。したがって、head
の値は返さずに自動的に更新されますが、Node*
を削除してvoid
を返品タイプinsert_at_pos
に設定すると機能しません。
そして、私はこのようなinsert_at_pos
関数を呼び出しています::
Node *head=insert_at_pos(head,0);
可能性のある説明または何ここで間違って起こっている可能性があり何?
[Cで関数に渡されたポインタを変更するにはどうすればよいですか?](http://stackoverflow.com/questions/766893/how-do-i-modify-a-pointer -th-of-a-c-in-a-c-in-c-in-c) –
はい、それは間違いなく[どのように私はCで関数に渡されたポインタを変更しますか?](http:// stackoverflow .com/questions/766893/how-do-i-modify-a-pointer-of-a-of-a-function-in-c) –