Название: Вопрос по QByteArray Отправлено: qtист от Апрель 16, 2009, 13:57 есть вот такой код:
Код
т.е. занесено число 0(2 байта) и символ 's'. А если посмотреть размерность arrBlock,то она равна 8 Откуда? :o Название: Re: Вопрос по QByteArray Отправлено: crackedmind от Апрель 16, 2009, 14:00 Цитировать А если посмотреть размерность arrBlock,то она равна 8 Как смотришь?Название: Re: Вопрос по QByteArray Отправлено: qtист от Апрель 16, 2009, 14:05 так:
quint16 N=arrBlock.size(); Название: Re: Вопрос по QByteArray Отправлено: Rcus от Апрель 16, 2009, 14:08 typeof("s") <> typeof('s') :)
Название: Re: Вопрос по QByteArray Отправлено: whirlwind от Апрель 16, 2009, 17:44 странно, почему-то даже char('s') запихивается как четыре байта, вместо одного. Только quint8('s') делает один байт
Название: Re: Вопрос по QByteArray Отправлено: Sergeich от Апрель 16, 2009, 18:49 В случае out << "s" вызывается QDataStream & operator<< ( const char * s ), он сначала записывает 4 байта - длину строки, потом строку, заканчивающуюся нулем - получаем sizeof(quint32) + sizeof("s\0") = 6 байт
В случае out << char('s'), поскольку метода operator<< ( char s ) у QDataStream нет, char преобразуется в int и вызывается QDataStream::operator<<(qint32 i) |