写了一个小程序,工作时会跑一个大循环,在运行时发现有严重的内存泄露,内存不停增长。

经过几次复查,终于找出问题所在,代码结构大概如下:

struct myobj

{

myobj()

{

memset(this,0,sizeof(myobj));

}

int n;

//...其他成员

string s;

}

定义了一个结构体,有众多类型成员,想初始化成员但又懒得一一赋值,所以在构造函数使用了memset函数。

问题就出在这里,该函数同样清空了所有string成员的内存空间,影响了该对象的析构,从而导致内存泄露。

所以当对象有复杂类型成员时,构造函数中不要使用memset初始化,有指针成员时要谨慎使用!

构造函数中慎用memset相关推荐

  1. C++对象模型4——多重继承的对象内存模型、vptr与vtbl的创建与重置的时机、不要在含有虚函数的类的构造函数中调用memset

    一.多重继承的对象内存模型 class Base1 { public:virtual void f() {cout << "base1::f()" << e ...

  2. 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释

    我想这应该是Java构造函数的一种机制吧,首先以子类和父类为例. 当你创建一个子类的实例时,首先会调用父类的构造函数,然后再调用子类的构造函数,如果父类中没有缺省构造函数,则必须再子类的构造函数中显示 ...

  3. this调用语句必须是构造函数中的第一个可执行语句_谈谈JavaScript中的函数构造式和new关键字...

    您是否曾困惑于 Javascript 中的new关键字呢?是否曾想理解关于 function 和 constructor 的区别是什么呢? 大多数 Javascript 的新开发者不太想要使用new关 ...

  4. 使用原型相对于直接在构造函数中定义方法的优势? [重复]

    本文翻译自:Advantages of using prototype, vs defining methods straight in the constructor? [duplicate] Th ...

  5. 构造函数中的虚拟成员调用

    我从ReSharper得到警告,关于从对象构造函数调用虚拟成员的信息. 为什么这不是要做的事情? #1楼 因为在构造函数完成执行之前,对象没有完全实例化. 虚函数引用的任何成员都不得初始化. 在C + ...

  6. C++在构造函数中调用构造函数

    为什么80%的码农都做不了架构师?>>>    C++如何在一个构造函数中调用另一个构造函数,在一篇博文中看到了这样的一道题: #include <stdlib.h> # ...

  7. 第7集 构造函数中抛出的异常

    上一篇文章简单讨论了一下对象的成员函数抛出异常时的处理情况.本文中将继续讨论当在构造函数中抛出异常时,程序的执行情况又如何?这有点复杂呀!而且主人公阿愚还觉得这蛮有点意思! 构造函数中抛出的异常 1. ...

  8. 构造函数中不应调用虚函数

    今天调试程序,遇到一个很费解的问题,现在做个记录: class CS3Adapter : public CBaseAdapter 类CS3Adapter继承于CBaseAdapter,其中 CBase ...

  9. 【Groovy】Groovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )

    文章目录 一.Groovy 构造函数中为成员赋值 二.Groovy 函数的参数传递与键值对参数 三.完整代码示例 一.Groovy 构造函数中为成员赋值 Groovy 类没有定义构造函数 , 但是可以 ...

最新文章

  1. 《预训练周刊》第12期:无注意力变换器、借蛋白质语言模型论进化速度
  2. 图说机房空气焓湿处理过程
  3. Bug总结:python语言中出现的import error错误的解决思路
  4. 长春理工大学第十四届程序设计竞赛(重现赛)F.Successione di Fixoracci
  5. linux 访问Windows 共享文件的方法
  6. Idea-Plugin编写Android Studio插件
  7. 攻击防御实例——SQL注入
  8. Detours 劫持
  9. 西藏:失落的旅游天堂?
  10. python+pillow不规则图片合成合并
  11. reached end of file while parsing
  12. 下载喜马拉雅FM的音频
  13. 三星30pin引脚_led屏接口定义20PIN-30PIN
  14. 02pysal距离权重矩阵
  15. 使用USBWriter做U盘启动盘后U盘在盘中不显示的解决办法(轉載)
  16. EN 12259-3喷水灭火系统干式报警阀组件—CE认证
  17. windows2016 达梦8数据库实例初始化和卸载
  18. javaScript求0-100之间的偶数和与奇数和
  19. 专访张泽华:细微中发现问题 源头上解决问题
  20. 远程和Ubuntu服务器进行Socket通信,使用python和C#(准备篇)

热门文章

  1. office文件转换为pdf文件
  2. matlab画图窗口显示中文乱码,全是方框的解决方法
  3. 高仿QQ源码 界面(3)
  4. jQuery学习(菜鸟教程)
  5. [前端之旅] - 01 开端 (持续更新各种资料)(夜·猫之使徒·哮喘征服者·被光选中的人·逐梦)
  6. 多线程面试题_线程魔术技巧:使用Java线程可以做的5件事
  7. 第二十六篇 request模块使用
  8. PSRAM/SRAM与XMC硬件连接的推荐方法
  9. 欢迎 SphereEx 成为开源社年度白金伙伴
  10. 第二届Techo TVP 开发者峰会有感