リンクされたリストであるはずのポインターと関数を使用してこのプログラムを作成しました。「アクセス違反の読み取り場所 0xcdcdcded」が表示され続けます。以下の最後の部分で。次に初期化していない可能性があると思いますが、ポインターが初めてで、その方法がわかりません。どんな助けでも大歓迎です。
typedef struct temp
{
char name[20];
char telephone[10];
temp *next;
} node;
node* creation1 ()
{
node *NEW = NULL;
NEW = (node*)malloc(sizeof(node));
return NEW;
}
node* creation2 ()
{
node *start= NULL;
node *NEW = creation1();
start= NEW;
return start;
}
node* creation3 ()
{
node *NEW = creation1();
node *current = NULL;
current=NEW;
return current;
}
void consult ()
{
node *NEW= creation1();
node *start= creation2();
node *current = creation3();
int exit;
printf("How many contacts do you wish to add? ");
scanf("%i",&exit);
for(int i=1; i<=exit; i++)
{
NEW = (node*)malloc(sizeof(node));
current->next=NEW;
current = NEW;
fflush(stdin);
puts("NAME: ");
gets(NEW->name);
puts("TELEPHONE: ");
gets(NEW->telephone);
NEW->next=NULL;
}
current=start->next;
int i = 0;
do
{
i++;
current = current->next; //this is where it stops and gives me the access reading violation
}while (current != NULL);
}
int main(int argc, char** argv)
{
consult();
}