char*和wchar_t*的问题,分给多一点/
#include <clx.h>
#pragma hdrstop
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
char* str = new char[3];
str = "123";
int i = strlen(str);
wchar_t *wstr = new wchar_t[3];
mbstowcs(wstr, str,3);
int j = strlen((const char*)wstr);
cout << i << '\n' << j << endl;
cin.get();
}
为什么这个时候j是等于1的?
如果有一个函数funcA:
funcA(const char* ){}
我该如何把wstr作为参数传进去而又不改变wstr指向的字符串的值。用wcstombs是不可以的。
即类似于funcA( (const char*) wstr){}
当然,这样是不行的,wstr指向的值变成了‘1’而不是‘123’??