开发者社区> 问答> 正文

C语言,a=malloc,b=a,c=a,free(b),free(c)出错

#include
int _tmain(int argc, _TCHAR* argv[])
{
char a=(char)malloc(4);
memcpy(a,"123",3);
char *b=a;
char *c=a;
if(b)
{
free(b);
}
if(c)
{
free(c);
}
return 0;
}

展开
收起
a123456678 2016-03-04 14:34:39 2453 0
2 条回答
写回答
取消 提交回答
  • C入门级选手的嵌入式开发人员

    补充,规范的情况下, free (b) 之后要有 b = NULL; c 也是, 防止野指针出现。

    2019-07-17 18:52:16
    赞同 展开评论 打赏
  • free(b)的时候已经把内存释放了,再执行free(c)又来释放这片内存是非法的

    2019-07-17 18:52:16
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载