我想要一个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
非常感谢任何帮助和评论。
答案 0 :(得分:7)
您使用''
代替""
,因此作业wcAltFinalText[0] = L'\0';
相当于wcAltFinalText[0] = 0;
答案 1 :(得分:5)
wcAltFinalText[0] = L'\0';
L'\0'
是一个宽字符文字,这是一个整数类型 - 上面的行对应
wcAltFinalText[0] = 0;
你想要的是一个字符串文字,L"\0";
答案 2 :(得分:2)
好吧,您只需将新创建的数组中的所有元素设置为空指针(因为L'\0'
是“空字符”,而不是“空字符串”) - 您还期望什么?您具有与此代码相同的效果:
wcAltFinalText[0] = 0;
wcAltFinalText[1] = 0;
wcAltFinalText[2] = 0;
wcAltFinalText[3] = 0;
和Visual Studio将空指针显示为“bad ptr”,这意味着没有数据可以在这样的指针后面。