我正在玩zlib,在阅读zlib_how之后,我还有几个问题。据我了解,应该在调用任何deflateInit之前先调用deflate(),但是当我打算多次重复使用同一流时会发生什么呢?

我是否应该在每次压缩完成后都调用deflateEnd,然后在每次调用压缩时都重新调用deflateInit并附加调用?内部缓冲区动态分配又如何呢?

我看到init和end malloc / free很多,是否可以通过在两次调用之间重用内部缓冲区的方式对其进行配置?

最佳答案

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

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

07-24 14:16