Qt QByteArray проблема - PullRequest
       2

Qt QByteArray проблема

1 голос
/ 10 октября 2010

Я пробовал следующее:

qDebug() << QByteArray("\x00\x10\x00\x00").size();

и я получаю 0 вместо 4, что я бы хотел.

Какой тип данных будет хорошим для хранения этих 4 байтовданные, как мне нужно позже записать их в сокет, чтобы они оставались такими же, как вы видите их выше?

1 Ответ

4 голосов
/ 10 октября 2010

Конструктор QByteArray(const char* str) использует qstrlen в качестве аргумента. Поскольку ваша строка начинается с байта 0x00, qstrlen возвращает 0, поэтому результирующий массив QByteArray имеет длину 0 байтов.

Чтобы избежать проверки qstrlen, используйте конструктор QByteArray(const char* str, int size):

qDebug() << QByteArray("\x00\x10\x00\x00", 4).size();

напечатает 4, как вы ожидаете.

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