代码如下,请问这样写会产生内存泄露吗?wchar_t*Convertchar2Wchar( const char *orig )
{
size_t origsize = strlen(orig) + 1;
const size_t newsize = origsize;
size_t convertedChars = 0;
wchar_t* wcstring = new wchar_t[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
return wcstring;
}
int _tmain(int argc, _TCHAR* argv[])
{
wstring pTest = Convertchar2Wchar("STUDSSSSSS23!");
cout<<pTest.c_str();
}
{
size_t origsize = strlen(orig) + 1;
const size_t newsize = origsize;
size_t convertedChars = 0;
wchar_t* wcstring = new wchar_t[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
return wcstring;
}
int _tmain(int argc, _TCHAR* argv[])
{
wstring pTest = Convertchar2Wchar("STUDSSSSSS23!");
cout<<pTest.c_str();
}
解决方案 »
- 双缓冲防图片刷新闪烁问题--内存泄漏4K
- 网络流量
- 全局线程函数中如何给CView类发送自定义消息?
- 按键事件响应问题
- 100分求解,编程实现标准modem的安装!
- 请大虾给小弟看看~!下面的代码是什么意思~~~!谢谢了
- 关于“INTERNAL COMPILER ERROR”的问题!
- 两次CString::Find(myStrAry[i],0),结果为和不同,而且我指定了nstart为0呀
- 当右击桌面时,会出现一个弹出菜单,我想Append一个MenuItem,点搞?
- [求助]如何使多个编辑框与一个数组的元素对应起来
- win32下怎样解决TextOut()内容被paint擦除?
- 由程序实例句柄 获取进程名的API是?
没见delete
但是要遵循谁申请谁释放的原则.
bool ConvertWchar2char(const wchar_t *orig,char *&nstring)
{
size_t origsize = wcslen(orig) + 1;
const size_t newsize = origsize;
size_t convertedChars = 0;
nstring= new char[newsize];
wcstombs_s(&convertedChars, nstring, origsize, orig, _TRUNCATE); return true;
}
以下是调用:
wstring orig =L"HeLLO WORLS!";
char * pTest = NULL;
ConvertWchar2char( orig.c_str(),pTest);
delete[] pTest;
pTest = NULL;这样还会有内存泄露吗?有相关的测试工具吗?