繁体   English   中英

wchar_t数组

[英]array of wchar_t

我想有一个wchar_t的数组。

以下作品:

char** stringArray;
int maxWords = 3;
stringArray = new char*[maxWords];
stringArray[0] = "I";
stringArray[1] = " Love ";
stringArray[2] = "C++"

但事实并非如此

wchar_t ** wcAltFinalText;
wcAltFinalText = new wchar_t *[MAX_ALT_SOURCE];   // MAX_ALT_SOURCE = 4
wcAltFinalText[0] = L'\0';
wcAltFinalText[1] = L'\0';
wcAltFinalText[2] = L'\0';
wcAltFinalText[3] = L'\0';

我没有得到任何错误,但wcAltFinalText是一个糟糕的ptr

非常感谢任何帮助和评论。

您正在使用''而不是"" ,因此赋值wcAltFinalText[0] = L'\\0'; 相当于wcAltFinalText[0] = 0;

wcAltFinalText[0] = L'\0';

L'\\0'是一个宽字符文字,这是一个整数类型 - 上面的行对应

wcAltFinalText[0] = 0;

你想要的是一个字符串文字, L"\\0";

好吧,你只需将新创建的数组中的所有元素设置为空指针(因为L'\\0'是“空字符”,而不是“空字符串”) - 您还期望什么? 您具有与此代码相同的效果:

wcAltFinalText[0] = 0;
wcAltFinalText[1] = 0;
wcAltFinalText[2] = 0;
wcAltFinalText[3] = 0;

并且Visual Studio将空指针显示为“bad ptr”,这意味着此指针后面没有数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM