我正在玩zlib
,在阅读zlib_how之后,我还有几个问题。据我所知,deflateInit
应该在调用任何deflate()
之前调用,这是可以的,但当我打算多次重用同一个流时会发生什么?
我应该在每次完成压缩时调用deflateEnd
,然后每次调用压缩时重新初始化,并调用deflateInit
吗?什么关于内部缓冲动态分配?
我看到init和end malloc / free很多,是否可以这样配置内部缓冲区将在调用之间重用?
答案 0 :(得分:3)
您应该使用deflateReset()
代替deflateEnd()
,然后使用deflateInit()
,以避免不必要的free()
和malloc()
。
您还应该阅读zlib.h中的文档,您可以在那里发现它。