C++之"new"数组之坑

最近在写go与C++的混合编程中,暴露给go的C接口因为不能直接使用容器;我对容器进行了转换将之前的std::vector转换成实际C的数组;使用:malloc_usable_size(),_msize(),函数获取new生成数组申请的内存的大小;

原本想用malloc_usable_size或_msize计算出的尺寸,当作原始的元素size,不曾想,用malloc_usable_size或_msize计算出的尺寸是大于大于申请的数量的。这种情况下在释放我想要释放的内存时,就会出错。

malloc_usable_size();    // linux 下用于计算new 或 malloc申请的内存大小
_msize();  // windows 下用于计算new 或 malloc申请内存的大小
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面: 犹豫了一下,不知道该不该发这么多。毕竟题目虽全,但是其实很多人看了不到一半,估计就会默默的收藏保存,等...
    Yt_cc阅读 14,953评论 1 6
  • C语言之数组 ——TechZone(Harris) 学完了前面几种基础语法之后,你可能会渐渐发现,现有的数据的记录...
    HarrisWilde阅读 4,204评论 1 1
  • 概述 C 语言的数组是一种将标量数据聚集成更大数据类型的方式。其实现的方式非常简单,很容易翻译为机器代码。C 语言...
    seraphzxz阅读 3,885评论 0 51
  • 首先郑重声明,这些面试题的答案都是参考网上的答案和自己理解的部分整合起来,如有错误,欢迎指针。 1 多态的实现 存...
    夜风_3b8d阅读 48,896评论 4 17
  • 1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”? 答:首先,extern是C/C...
    7ee72f98ad17阅读 4,968评论 0 6