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);
}

跳转

//------------------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 得已解决也可以在创建线程,把地址空间传参数!(
当跳转到你自己写的代码,就行了哈!说明找到问题了)



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值