gpt4 book ai didi

c - zlib 在内存中膨胀

转载 作者:太空宇宙 更新时间:2023-11-04 02:15:58 25 4
gpt4 key购买 nike

我有一个小缓冲区,里面有一些数据(大约 35'000 字节)。不,我想用 zlib 膨胀我的缓冲区。缓冲区名为“pos_in_mem”(void *),我的缓冲区的长度是 len (int *)。

我总是在该部分代码上得到 -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);

有什么想法吗?

谢谢

最佳答案

您可能将 inflate 误认为是 deflate

inflate - 通货膨胀、音量上升、减压

deflate - 放气、音量减小、压缩

关于 zlib web page 的良好deflate/inflate 示例.

关于c - zlib 在内存中膨胀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com