数据结构问题
#include<stdio.h>#include<stdlib.h>
typedef struct stack
{
int data;
struct stack *next;
}linkstack,*linklist;
linklist stack=NULL;
void push(int i)
{
int j;
linklist q;
for(j=0;j<i;j++)
{
q=(linklist)malloc(sizeof(linkstack));
q->next=NULL;
scanf("%d",&q->data);
q->next=stack;
stack=q;
}
}
void pop()
{
linklist p;
while(stack!=NULL)
{
p=stack;
printf("%d",p->data);
free(p);//为什么加了这个以后就只能输出一个了呢
stack=stack->next;
}
}
void main()
{
int x;
scanf("%d",&x);
push(x);
pop();
}
希望告诉我下,详细点,为什么不能释放啊
void main()
{
int x;
linklist p,q;
scanf("%d",&x);
p=push(stack1,x);
q=push(stack2,x);//把push函数变为void push(stack),没有return stack,直接用push(stack1,x);push(stack2,x);pop(stack1);pop(stack2)不行呢,输不出结果,难道stack的值没有变化吗,同时linklist stack=NULL; 在程序里是什么,是不是全局变量啊
pop(p);
pop(q);
}