当前位置:   article > 正文

malloc与free_malloc和free一定要成对出现

malloc和free一定要成对出现

3.malloc与free在子函数中必须成双出现。
        (1)原因:
                因为当调用子函数结束后并不会像子函数中定义的其他变量一样在函数调用接受后被自动释放,而是会一直保持占有状态,因此对于子函数一定要切记free掉对应的空间。
        (2)实际所犯错误:

  1. FrameResult_t* FrameDecide(Uint32 t_ii , Uint32* pxx , DecideParam* decideParam)
  2. {
  3. //***省略
  4. FrameData_t* decideData = (FrameData_t*)malloc(sizeof(FrameData_t));
  5. if(deciData == NULL){
  6. printf("malloc decideData error!!\n");
  7. return NULL;
  8. }
  9. //***省略
  10. return decideResult;
  11. }

没有对malloc的指针进行free,由于该函数多次调用,导致Ram空间很快被占满,因此程序运行时会一直打印 "malloc decideData error!!"。

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

闽ICP备14008679号