您的位置:首页 > 其它

C陷阱 ---- 随时更新

2014-08-31 10:13 162 查看
整理汇总平时编程过程中遇到的容易出错的地方

1. 多处malloc,后面的malloc申请失败返回,前面申请成功的未释放,造成缓存泄露

35 void main()
36 {
37     char *buff1;
38     char *buff2;
39     char *buff1= malloc(100);
40     if (NULL == buff1)
41     {
42         return ;
43     }
44     buff2 = malloc(100);
45     if (NULL == buff2)
46     {
47         free(buff1);//此处容易忘记释放
48         return ;
49     }
50 }
2. free无效指针,malloc申请的缓存,指针进行过偏移操作,释放

void main()
36 {
37     char *buff1= malloc(1000);
38
39     if (NULL == buff1)
40     {
41         return ;
42     }
43     buff += sprintf(buff,"str",strsize);
44     free(buff);//buff已经偏移过,此时释放非法
45     return;
46 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: