首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这样应该是内存泄露了吧?该怎么处理

2012-05-21 
这样应该是内存泄露了吧?前面某个大神走了,留下下面这段程序:声明一个指针--分配内存--各种操作--再分

这样应该是内存泄露了吧?
前面某个大神走了,留下下面这段程序:声明一个指针-->分配内存-->各种操作-->再分配内存-->各种操作-->再分配内存....
按照我之前所学的知识,这是里已经是泄露内存了,但鉴于其大神的身份,我宁愿相信这是他因为工资问题故意留下的BUG.
现在我想问一下各位,这里有必要反复对XXXXX重新申请内存吗?TS_TestResult这个结构体就4个成员,不都是重新复制了吗?
我如果要修改的话是在每个new的后面加个delete好,还是直接把那些删除那些重新new的语句?谢谢...

C/C++ code
        TS_TestResult* XXXXX;        XXXXX = new TS_TestResult();        XXXXX->Name       = 11111;             XXXXX->Value      = 22222;        XXXXX->Update     = 33333;        XXXXX->ErrorCode  = 44444;        YYYYY.push_back(XXXXX);        XXXXX = new TS_TestResult();        XXXXX->Name       = aaaaa;             XXXXX->Value      = bbbbb;        XXXXX->Update     = ccccc;        XXXXX->ErrorCode  = ddddd;        Session_Results.push_back(XXXXX);        XXXXX = new TS_TestResult();        XXXXX->Name       = eeeee;             XXXXX->Value      = fffff;        XXXXX->Update     = ggggg;        XXXXX->ErrorCode  = hhhhh;        Session_Results.push_back(XXXXX);        XXXXX = new TS_TestResult();        XXXXX->Name       = 99999;             XXXXX->Value      = 88888;        XXXXX->Update     = 77777;        XXXXX->ErrorCode  = 66666;        Session_Results.push_back(XXXXX);


[解决办法]
在销毁或析构YYYYY和Session_Results中各元素时再逐一delete
[解决办法]
如果是每个成员都会重新操作可以不用。
为了保险,用memset重置内存数据就好了。
-
再或者那个类有特殊的构造函数,所以反复的new。
[解决办法]
看下是否有重载new?
如果没有,那么new不去delete是不人道的!
探讨

如果是每个成员都会重新操作可以不用。
为了保险,用memset重置内存数据就好了。
-
再或者那个类有特殊的构造函数,所以反复的new。

[解决办法]
楼主指针和内存不分,还说人家不行,悲哀了.
[解决办法]

new和delete

fopen和fclose
那样用。

热点排行