リストの最後に要素を挿入して、その中の1つを表示できるプログラムを書いています。正しく挿入されますが、指定されたものを表示できます。
typedef struct Node
{
int data;
struct Node *next;
struct Node *prev;
} node;
void insert(node *head, int data)
{
node *newNode = (node*) malloc(sizeof(node));
newNode->data = data;
newNode->next = NULL;
if(head == NULL)
{
head = newNode;
}
else
{
while(head != NULL)
head = head->next;
head->next = newNode;
(head->next)->prev = head;
}
}
void print(node *head, int element)
{
node *temp = head;
int count = 0, i = 1;
while(i < element)
{
temp = temp->next;
i++;
}
printf("%d", temp->data);
}
int main()
{
node *start = (node*) malloc(sizeof(node));
start = NULL;
int data1 = 4, data2 = 5;
insert(start,data1);
insert(start,data2);
print(start, 1);
}
なぜそれが機能しないのですか?また、私がこれを適切に行っているかどうか教えていただけますか?