Я попытался написать код для реализации и распечатать связанный список, используя для цикла. Но мой код дает ошибку времени выполнения. Он рушится, когда я запускаю его.Что не так с моим кодом? Сбой каждый раз, когда я запускаю его
#include <stdio.h>
#include <stdlib.h>
struct node
{
int info;
struct node *next;
struct node *prev;
}var;
int main()
{
struct node head;
head.prev=NULL;
struct node *temp;
int i;
for(i=1;i<5;i++)
{
struct node *new=malloc(sizeof(var));
temp->info=i;
temp->next=new;
new->prev=temp;
temp=new;
}
for(i=1;i<=5;i++)
{
printf("%d ",temp->info);
}
return 0;
}
'temp' никогда не был инициализирован и указывает на нераспределенную память. –
Будьте ангелом и не используйте 'new' как имя переменной. Это больно глаза программиста на C++, и, возможно, однажды ваш код может быть скомпилирован компилятором C++. – Bathsheba
, когда я делаю временную точку на голове, код запускается, но не показывает ожидаемый вывод ouput.it, который, кажется, является местом памяти. – user4983572