程序运行结束后,如何释放运行过程中用malloc开辟的空间? 20

简单的说:#include<stdio.h>#include<stdlib.h>#defineERROR0#defineOK1typedefStatusint;typed... 简单的说:
#include<stdio.h>
#include<stdlib.h>
#define ERROR 0
#define OK 1
typedef Status int;

typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
void InitList_L(LinkList *L);//链表初始化
void CreatList_L(LinkList *L, int n);//逆序建立链表,输入数据
void PrintList_L(LinkList L);//打印输出链表

void InitList_L(LinkList *L)
{
*L = (LinkList)malloc(sizeof(LNode));
if ((*L) == NULL)
{
exit(ERROR);
}
(*L)->next = NULL;
printf("初始化成功!\n");
}
void CreatList_L(LinkList *L, int n)
{
LinkList p;
while (n --)
{
p = (LinkList)malloc(sizeof(LNode));
scanf("%d", & p->data);
p->next = (*L)->next;
(*L)->next = p;
}
}
void PrintList_L(LinkList L)
{
LinkList p;
for (p = L->next; p != NULL; p = p->next)
{
printf("%4d", p->data);
}
printf("\n");
}
Status main(void)
{
int n, e = 0;
LinkList La, Lb;
LinkList p;
InitList_L(&La);
InitList_L(&Lb);
printf("请输入要在La中存放数据的个数:");
scanf("%d", &n);
printf("请倒序输入要存入La的%d个元素:\n", n);
CreatList_L(&La, n);
printf("请输入要在Lb中存放数据的个数:");
scanf("%d", &n);
printf("请倒序输入要存入Lb的%d个元素:\n", n);
CreatList_L(&Lb, n);
printf("La中元素为:\n");
PrintList_L(La);
printf("Lb中元素为:\n");
PrintList_L(Lb);

return 0;


比如这段程序,要求在程序运行结束,return 0;之前把之前建立链表所开辟的空间释放掉,怎么操作?
这么做行吗?有没有其他方法?
while (La != NULL)
{
p = La;
La = La->next;
free(p);
}
展开
 我来答
BUCK271565685
2012-09-26 · TA获得超过490个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:128万
展开全部
没有仔细看你的程序、malloc()申请的内存可以用free()释放、如果不释放会出现内存溢出。

while (La != NULL)
{
p = La;
La = La->next;
free(p);
}
追问
你的意思是我这种方式可以??还有没有别的方法?
追答
可以啊~
_fmlyht
2012-09-26 · TA获得超过2359个赞
知道大有可为答主
回答量:2398
采纳率:0%
帮助的人:1830万
展开全部
就是这样。
分配的时候是一个个接点分配的,就要一个个释放。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流年浅炫
2012-09-26
知道答主
回答量:35
采纳率:0%
帮助的人:10.3万
展开全部
在最后面加free()用来释放申请的空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
無忄冥bX57c
2012-09-26
知道答主
回答量:89
采纳率:0%
帮助的人:33.1万
展开全部
free()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cfabc43
2012-09-29 · 超过16用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:41.3万
展开全部
毫无疑问可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式