но tmp = "".
[режим разжевывания азов]
Как уже было сказано выше - это случилось потому, что значение первого байта в сжатых данных скорее всего получилось == 0, поэтому при добавлении в QString этого массива (с первым нулём) - вышел размер строки == 0.
А всё потому, что строки заканчиваются '\0' !!!Вот если бы в сжатом массиве нулю равнялся второй байт - то при добавлении в QString - оно бы показало длину строки в 1 байт!
[/режим разжевывания азов]