构造函数中慎用memset
原创当我写一个小程序时,我会运行一个系统循环。我发现存在严重的内存泄漏,并且内存不断增长。
经过多次审核,最终确定了问题所在,代码结构大致如下:
struct myobj
{
myobj()
{
memset(this,0,sizeof(myobj));
}
int n;
//...其他成员
string s;
}
定义了一个具有许多类型成员的结构,但懒得逐个分配值。因此,在构造函数中memset函数。
问题就在这里,因为这个函数也会清除所有string成员的内存空间会影响对象的解构,从而导致内存泄漏。
因此,当对象具有复杂类型成员时,不要使用memset使用指针成员初始化时要小心!
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:办公桌前不做四件事 下一篇:一个提供缺失的dll的网站