-
-
[求助]MultiByteToWideChar引起free内存崩溃问题
-
发表于:
2016-3-7 20:37
4700
-
[求助]MultiByteToWideChar引起free内存崩溃问题
这段代码我知道有问题,改成:pwText = (wchar_t *)malloc( dwUnicodeLen * sizeof( wchar_t ) ); 就正常了,但是不知道深层的原因,malloc的内存管理信息记录在当前申请地址的前面,我调试发现也没有被修改,但是一到free就崩溃了,注释掉第二个MultiByteToWideChar就不会有问题,搞不明白这个函数干了什么,麻烦大家指导下~
int UTF8ToUnicode( const char* UTF8, wchar_t * strUnicode, int nDstBufLen )
{
wchar_t * pwText = NULL;
DWORD dwUnicodeLen = 0;
dwUnicodeLen = MultiByteToWideChar( CP_UTF8, 0, UTF8, -1, NULL, 0 );
pwText = (wchar_t *)malloc( dwUnicodeLen );
if ( !pwText )
return 0;
MultiByteToWideChar( CP_UTF8, 0, UTF8, -1, pwText, dwUnicodeLen);
wcscpy_s( strUnicode, nDstBufLen, pwText );
free( pwText );
return 1;
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!