[求助]在哪释放内存??
这是刚写的一个简单的建立链表,可我不知道该把free()用在什么地方.很多说上都没写该什么时候释放内存.请大家帮帮忙.谢谢!
#include<stdio.h>
#include<malloc.h>
struct chain
{
char data;
struct chain *next;
};
struct chain *create(void);
void print(struct chain *);
void main()
{
struct chain *q1;
q1=create();
print(q1);
}
struct chain *create(void)
{
struct chain *head,*tail,*p;
head=tail=NULL;
char ch;
while ((ch=getchar())!='\n')
{
p=(struct chain *)malloc (sizeof(struct chain));
p->data=ch;
p->next=NULL;
if (head==NULL)
{
head=tail=p;
}
else
{
tail=tail->next=p;
}
}
return head;
}
void print(struct chain *head)
{
while (head!=NULL)
{
printf("%c",head->data);
head=head->next;
}
}