构造函数中慎用memset
原创当我写一个小程序时,我会运行一个系统循环。我发现存在严重的内存泄漏,并且内存不断增长。
经过多次审核,最终确定了问题所在,代码结构大致如下:
struct myobj
{
myobj()
{
memset(this,0,sizeof(myobj));
}
int n;
//...其他成员
string s;
}
定义了一个具有许多类型成员的结构,但懒得逐个分配值。因此,在构造函数中memset函数。
问题就在这里,因为这个函数也会清除所有string成员的内存空间会影响对象的解构,从而导致内存泄漏。
因此,当对象具有复杂类型成员时,不要使用memset使用指针成员初始化时要小心!
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:办公桌前不做四件事 下一篇:一个提供缺失的dll的网站
相关文章
- 解决SolidWorks2019许可证错误-85440
- 解决sklearn.datasets.fetch_20newsgroups下载速度慢的问题
- 解决sklearn.datasets.fetch_20newsgroups下载报错问题分享
- 解决Scratch3.0scratch-hex文件下载失败问题
- 解决RHEL7无法使用YUM源的问题
- 解决Qt应用中遇到的libpngwarningiCCPknownincorrectsRGBprofile问题
- 解决QT启动时找不到python36.dll问题
- 解决Qt5在麒麟Linux下不能输入中文问题
- 解决QT5.12.6使用32位MinGW编译器无法使用SSL协议问题
- 解决PyTorchCUDA编译问题指南
最新文章
- 解决SolidWorks2019许可证错误-85440 5个月前 (02-11)
- 解决sklearn.datasets.fetch_20newsgroups下载速度慢的问题 5个月前 (02-11)
- 解决sklearn.datasets.fetch_20newsgroups下载报错问题分享 5个月前 (02-11)
- 解决Scratch3.0scratch-hex文件下载失败问题 5个月前 (02-11)
- 解决RHEL7无法使用YUM源的问题 5个月前 (02-11)
- 解决Qt应用中遇到的libpngwarningiCCPknownincorrectsRGBprofile问题 5个月前 (02-11)
- 解决QT启动时找不到python36.dll问题 5个月前 (02-11)
- 解决Qt5在麒麟Linux下不能输入中文问题 5个月前 (02-11)
- 解决QT5.12.6使用32位MinGW编译器无法使用SSL协议问题 5个月前 (02-11)
- 解决PyTorchCUDA编译问题指南 5个月前 (02-11)