这样应该是内存泄露了吧?
前面某个大神走了,留下下面这段程序:声明一个指针-->分配内存-->各种操作-->再分配内存-->各种操作-->再分配内存....
按照我之前所学的知识,这是里已经是泄露内存了,但鉴于其大神的身份,我宁愿相信这是他因为工资问题故意留下的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是不人道的!
[解决办法]
楼主指针和内存不分,还说人家不行,悲哀了.
[解决办法]
将
new和delete
象
fopen和fclose
那样用。