码迷,mamicode.com
首页 > 其他好文 > 详细

munmap_chunk(): invalid pointer

时间:2020-09-17 19:53:24      阅读:33      评论:0      收藏:0      [点我收藏+]

标签:munmap   code   错误   今天   let   ++   ali   inter   lse   

今天写代码是这个错误“munmap_chunk(): invalid pointer”

这个错误其实是使用new 申请空间后,再次对申请的空间进行分配,最后释放的时候的多次释放。
比如这样一段代码

 size_t len = ????;
 uint8_t *data[2];
 uint8_t* temp = new uint8_t[len];
 if(temp != nullptr) {
    data[0] = temp;
    data[1] = temp + len / 2;
 }
 /// do something  
 // 释放资源
 for(size_t i = 0; i < 2; i++) {
   delete[] data[i];
   data[i] = nullptr;      
  }   

上述代码就会报这个错误。

这段代码可以改成这样

      // 释放资源
 if(data[1] == (data[0] + len / 2)) {
      delete[] data[0];
      data[0] = nullptr;
      data[1] = nullptr;
}else{
 for(size_t i = 0; i < 2; i++) {
   delete[] data[i];
   data[i] = nullptr;      
  } 
}

munmap_chunk(): invalid pointer

标签:munmap   code   错误   今天   let   ++   ali   inter   lse   

原文地址:https://www.cnblogs.com/cyssmile/p/13640011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!