首页 > 代码库 > Detected memory leaks! Dumping objects
Detected memory leaks! Dumping objects
Detected memory leaks! Dumping objects -> {563} normal block at 0x0FAF4D60, 255 bytes long. Data: <SD-20140120MYGT > 53 44 2D 32 30 31 34 30 31 32 30 4D 59 47 54 00
mfc 获取局域网Ip上次有内存溢出,我来说说解决办法!
方法:_CrtSetBreakAlloc(563); // 最好在你内存分配的前面加上内存溢出的行号;
快捷键:shift+F11 进行调试找到你内存溢出的位置进行修改即可!
下面就以我代码例子如下:(我的主要问题在于,使用了cstring 转 char 的转换函数,内存分配了,并未进行 delete [])
_CrtSetBreakAlloc(556); m_devIpShow.DeleteAllItems(); hThread = (HANDLE)_beginthreadex(NULL, 0, &SecondThreadFunc, NULL, 0, NULL); WaitForSingleObject( hThread, INFINITE ); CloseHandle(hThread);</span>
跳转
extern "C" _CRTIMP void * __cdecl _malloc_dbg ( size_t nSize, int nBlockUse, const char * szFileName, int nLine ) { void *res = _nh_malloc_dbg(nSize, _newmode, nBlockUse, szFileName, nLine); RTCCALLBACK(_RTC_Allocate_hook, (res, nSize, 0)); return res; }
跳转
void* __cdecl operator new[](size_t nSize) { return ::operator new(nSize); } void __cdecl operator delete[](void* p) { ::operator delete(p); }
跳转
<span style="color:#362e2b;">//------------------cstring 转 string char* zhuanhuan(std::string src) { char *dst = new char[255]; int i; int j=src.length(); for(i=0;i <src.length();i++) dst[i]=src[i]; dst[i] = '\0'; return dst; }</span>
可以声明一个全局的变量,使用以后进行delete 得已解决!
Detected memory leaks! Dumping objects
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。