#include<stdio.h>
#include<malloc.h>
struct node
{
int data;
struct node *next;
};
struct node* insert_beg(struct node *h,int x)
{
struct node *t;
printf("\n address = %u --- ",*h);
t=(struct node *)malloc(sizeof(struct node));
if(h==NULL)
{
t->data=x;
t->next=NULL;
h=t;
}
else
{
t->data=x;
t->next=h;
h=t;
}
return h;
}
void display(struct node *h1)
{
struct node *t=h1;
while(t->next!=NULL)
{
printf("%d->",t->data);
t=t->next;
}
}
int main()
{
struct node *p=NULL;
int a,ch=5;
while(ch--)
{
printf("\n Enter data");
scanf("%d",&a);
p=insert_beg(p,a);
display(p);
}display(p);
}
Вышеупомянутый код для вставки элемента в начале единственного связанного списка ссылок в c.Программа, вставляющая элемент в односвязный список
Код успешно компилируется, но когда я пытаюсь вставить элемент, зависающий системой ... Не найти ошибку. Может ли кто-нибудь предложить исправление, которое мне нужно сделать.
Есть ошибки в выражении, упомянутом ниже ... Нужна помощь.
p=insert_beg(p,a);
Что вы имеете в виду под «[я] есть ли какая-либо ошибка в выражении, упомянутом ниже "? Вы имеете в виду, что вы получаете ошибку сборки на этой строке? Или вы имеете в виду, что вы получаете сбой при запуске программы? Или вы просто задаетесь вопросом, правильная ли строка (без фактического создания/запуска вашей программы)? Пожалуйста, дополните. Если вы столкнулись с крахом во время выполнения, попробовали ли вы запустить отладку в отладчике, чтобы поймать крах в действии и найти, где это происходит в вашем коде? –
delete 'printf (" \ n address =% u --- ", * h);' Также в 'display':' while (t-> next! = NULL) '->' while (t! = NULL) ' – BLUEPIXY
не забудьте освободить память для узла, я вижу в нем память freak() –