我正在编写代码来推送和弹出堆栈中的元素但是我的show函数无法正常工作并且无限打印内存地址
typedef struct Stack
{
int info;
struct Stack *next;
}
stack;
stack *head;
// x要插入的元素
void push(int x)
{
stack *ptr;
stack *ptr1;
//分配大小
ptr=(stack*)malloc(sizeof(stack));
ptr->info=x;
if(head==NULL)
{
ptr->next=NULL;
head=ptr;
}
else
{
ptr1=head;
while(ptr1->next!=NULL)
{
ptr1=ptr1->next;
}
ptr1->next=ptr;
ptr->next=NULL;
}
}
//显示打印输出的函数
void show()
{
stack *ptr=head;
while(ptr!=NULL)
{
printf("%d\n",ptr->info);
ptr=ptr->next;
}
}
void pop()
{
stack *ptr=head;
while(ptr->next!=NULL)
{
ptr=ptr->next;
}
free(ptr);
}