リンクリストを作成するプログラムです。このプログラムを実行すると、セグメンテーション違反が発生します。
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *next, *prev;
};
struct node *root=NULL;
void push (int);
void pop (void );
struct node * create_node (int );
void travel (void );
int main()
{
int i, j, choice, count;
printf("enter choice\n");
scanf("%d", &choice);
count = 0;
while (choice == 1) {
printf("enter a data element");
scanf("%d", &j);
count++;
printf("enter choice\n");
scanf("%d", &choice);
}
printf("the link list is \n");
//travel function to be created
travel();
}
void push(int data)
{
struct node *t1;
t1=root;
while( t1->next!=NULL)
{
t1=t1->next;
}
t1->next=create_node( data);
}
void pop()
{
}
void travel (void )
{
struct node *t1;
t1=root;
while (t1->next!=NULL)
{
printf("%d ",t1->data);
}
printf("%d ",t1->data);
}
struct node * create_node (int data)
{
struct node *p = (struct node *) malloc (sizeof(struct node));
p->data=data;
p->next=NULL;
p->prev=NULL;
return p;
}
エラーは何ですか?これが私が実行した方法です
user@ubuntu:~/programming$ ./a.out
enter choice
1
enter a data element45
enter choice
1
enter a data element67
enter choice
1
enter a data element89
enter choice
0
the link list is
Segmentation fault