正确设置和使用 zlib

Setting up and using zlib properly

我正在研究 zlib,在阅读 zlib_how 之后我还有几个问题。据我所知, deflateInit 应该在调用任何 deflate() 之前调用,这没问题,但是当我打算多次重用同一个流时会发生什么?

我是否应该在每次完成压缩时调用 deflateEnd,然后在每次调用压缩并额外调用 deflateInit 时重新初始化?内部缓冲区动态分配怎么样?

我经常看到 init 和 end malloc/free,是否可以将其配置为在调用之间重用内部缓冲区?

您应该使用 deflateReset() 而不是 deflateEnd() 后跟 deflateInit(),以避免不必要的 free()malloc()

您还应该阅读 zlib.h 中的文档,在那里您会发现这一点。