QString :: fromWCharArray выдает странные символы - PullRequest
0 голосов
/ 28 июня 2010

У меня есть строка с именем aDrive = "H:/"

Я хочу преобразовать эту строку в WCHAR, так что, как показано ниже

WCHAR Drive[4];

aDrive.toWCharArray ( Drive ) ;

, когда я ее напечатал qDebug ()<<QString::fromWCharArray ( Drive );

это выглядит как "H:/???"

почему я получаю звездных персонажей в конце ..

Спасибо за ваше время

Ответы [ 2 ]

4 голосов
/ 28 июня 2010

QString::toWCharArray() не завершает массив нулем.Без явной длины массива с QString::fromWCharArray() он будет читать wchars, пока не будет прочитан нулевой wchar.В этом случае вам придется добавить нулевой wchar самостоятельно в конце или использовать явный параметр длины с QString::fromWCharArray().

Как всегда, документация - ваш друг.

1 голос
/ 28 июня 2010

Это только мое предположение.

В соответствии с документацией toWCharArray : Эта функция не добавляет нулевой символ в массив. Возвращенная строка неправильно завершена нулем. При его печати часть памяти после памяти, выделенной для массива накопителей, также печаталась до тех пор, пока не будет достигнут нулевой байт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...