请讲下对malloc和free的心得 那些基本的就不要讲了 拒绝复制粘贴 请说自己的学到的心得
2个回答
展开全部
分配内存的时候一定要记得释放,很多人觉得这不是什么问题,写一个malloc然后对应写一个free就可以了,实际没这么简单的,看这样一个例子(我简单的写一下):
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *p=malloc(1000);
char *q=malloc(500);
int a,b;
.....
..... (表示省略一些无关本题的代码)
if(a>b)
{
.....
.....
printf("a>b\n");
return -1;
}
if(a==b)
{
.....
printf("a=b\n");
return -1;
}
free(p);
free(q);
return 0;
}
这代码编译执行没问题,实际上这个代码隐含大错误 ,代码运行久了后果很严重。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *p=malloc(1000);
char *q=malloc(500);
int a,b;
.....
..... (表示省略一些无关本题的代码)
if(a>b)
{
.....
.....
printf("a>b\n");
return -1;
}
if(a==b)
{
.....
printf("a=b\n");
return -1;
}
free(p);
free(q);
return 0;
}
这代码编译执行没问题,实际上这个代码隐含大错误 ,代码运行久了后果很严重。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询