Это может быть просто расстегнуть молнию. Имейте в виду, что многие строково-ориентированные функции display прекратят вывод символов при первом '\0'
. Даже ваш отладчик будет отображать char*
, как если бы это была строка в вашем окне просмотра. Он может только догадываться, какие данные находятся в массиве символов ... Как вы проверяете, сколько байтов было разархивировано?
Вы можете попробовать что-то вроде этого:
FindZipItem(hz, filename.c_str(), true, &j, &ze);
char *content = new char[ze.unc_size];
memset(content, 0, ze.unc_size); // added so we can say that if it has a bunch of 0 bytes, then the unzip stopped early.
UnzipItem(hz, j, content, ze.unc_size);
// will print in hex all of the bytes in the array
for(int i = 0; i < ze.unc_size; ++i) {
printf("%02x ", content[i]);
}
delete[] content;