wchar_t数组

时间:2011-03-14 12:35:07

标签: c++ unmanaged visual-c++-2005 wchar-t wchar

我想要一个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

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

3 个答案:

答案 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”,这意味着没有数据可以在这样的指针后面。