我有一些小數據緩衝區(大約35'000字節)。不,我想用zlib充氣我的緩衝區。 緩衝區被命名爲「pos_in_mem」(void *),緩衝區的長度爲len(int *)。zlib在內存中膨脹
我總是得到的代碼部分-3(Z_DATA_ERROR):
int ret;
z_stream strm;
unsigned char in[CHUNK];
unsigned char out[CHUNK];
/* allocate deflate state */
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
strm.avail_in = 0;
strm.next_in = Z_NULL;
ret = inflateInit(&strm);
if (ret != Z_OK) {
printf("zlib init failed");
}
strm.avail_in = *len; // this is my buffer length
strm.next_in = pos_in_mem; // this is my buffer
strm.avail_out = CHUNK;
strm.next_out = out;
//ret = deflate(&strm, flush);
ret = inflate(&strm, Z_NO_FLUSH); // here i always get a -3 Z_DATA_ERROR
printf("%d", strm.avail_out);
(void)inflateEnd(&strm);
什麼想法?
感謝
對!我混淆了東西!謝謝。 –