#include<stdio.h>
typedef struct Node
{
int data;
struct Node *next;
struct Node *prev;
} node;
void insert(node *pointer, int data)
{
while(pointer->next!=NULL)
{
pointer = pointer -> next;
}
pointer->next = (node *)malloc(sizeof(node));
(pointer->next)->prev = pointer;
pointer = pointer->next;
pointer->data = data;
pointer->next = NULL;
}
int main()
{
node *start;
start = (node *)malloc(sizeof(node));
int data;
scanf("%d",&data);
insert(start,data);
}
さて、私はCのリストの基本を理解しようとしています。ここで1つの質問があります-insert()の下から3行目-これは何のためですか?最初のリストの要素が空のままで、データが2番目のリストに保存されているようです。しかし、これだけが機能します。
main()には、最初の空の要素が作成されていますよね?
要素がnullであるため、while()は実行されません。
次に、2番目の要素が作成されます。(ポインタ-> null)
最初の要素を指すポインターは、2番目の要素(下から3行目)を指すように設定されます
そして、データはその2番目の要素に保存されています。
どこを間違えますか?