массив wchar_t - PullRequest
       60

массив wchar_t

2 голосов
/ 14 марта 2011

Я хотел бы иметь массив 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 ]

7 голосов
/ 14 марта 2011

Вы используете '' вместо "", поэтому назначение wcAltFinalText[0] = L'\0'; эквивалентно wcAltFinalText[0] = 0;

5 голосов
/ 14 марта 2011
wcAltFinalText[0] = L'\0';

L'\0' - это широкий символьный литерал, это целочисленный тип - строка выше соответствует

wcAltFinalText[0] = 0;

То, что вы хотите, это строка литерал, L"\0";

2 голосов
/ 14 марта 2011

Ну, вы просто устанавливаете все элементы во вновь созданном массиве на нулевые указатели (потому что L'\0' - это "нулевой символ", а не "пустая строка") - что еще вы ожидаете? У вас тот же эффект, что и с этим кодом:

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

и Visual Studio отображает нулевые указатели как «плохой ptr», что означает, что никакие данные не могут быть за этим указателем.

...