当前位置:   article > 正文

malloc和free使用要小心_malloc和free一定要成对出现

malloc和free一定要成对出现

先说一下用法:

       char *stemp = (char*)malloc(256 * sizeof(char));
        if(stemp == NULL) return FALSE;

注意有可能分配失败,所以这里需要判空一下。

使用结束要free:

        free(stemp);
        stemp = NULL;

今天使用的时候突然蹦出来弹框:

心情又崩溃了,想换其他方法了,想想还是把问题解决了;找啊找。。。。

发现问题出在free那里,Debug看一下free里面的指针不为空啊,重新来,看char *stemp = (char*)malloc(256 * sizeof(char));

再看free的时候:

去,怎么不一样了?

最后又找,好长的函数,终于找到了

对指针赋值了。

【总结】使用malloc和free的时候,一定好注意,不要对分配的指针赋值操作了,复制后,free找不到原来的指针,必然会报错。也就是说,malloc和free是成对出现,free的时候指针必须是malloc过的。对指针的操作,的确需要很深的“内功”。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/969227
推荐阅读
相关标签
  

闽ICP备14008679号