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 得已解决!
时间: 2024-10-17 20:17:52