这是刚写的一个简单的建立链表,可我不知道该把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;
}
}
----------------解决方案--------------------------------------------------------
why nobody help me?
----------------解决方案--------------------------------------------------------
free()用在删除链表节点的地方
注意删除的时候要把上下节点连接上~~
可能你对我这个解释不满意~可是你也没给出具体的题目或者代码出来啊
----------------解决方案--------------------------------------------------------
我的代码在上面啊???
题就是 建个动态链表啊
----------------解决方案--------------------------------------------------------
神vLinux飘飘 大哥 还在吗?
----------------解决方案--------------------------------------------------------
我有点不明白,你这个只是创建一个链表,不删除节点的情况下为什么要清内存呢?
----------------解决方案--------------------------------------------------------
在malloc申请内存后不用释放吗?当不在使用这个表的时候所开辟的内存空间不会自动释放啊!
如果是删除 那么不过是释放了那个元素吗 那其他的呢?
----------------解决方案--------------------------------------------------------
怎么malloc就怎么free
----------------解决方案--------------------------------------------------------
版主大哥 问一下 是不是malloc 和free一定要成对使用呢??
----------------解决方案--------------------------------------------------------
对
----------------解决方案--------------------------------------------------------