我正在使用 zlib-1.2.8 ,我在代码中用 compress.c 调用compress2(dest, destLen, source, sourceLen, level)
来压缩数据。
函数compress2 (dest, destLen, source, sourceLen, level)
正在调用
deflateInit(&stream, level);
deflateInit 是宏。
#define deflateInit(strm, level) \
deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
compress2 正在调用 deflateInit _ 。
我的问题是 deflateInit _ 正在返回Z_MEM_ERROR
。
我正在尝试在 deflateInit _ 内部进行调试,但没有收到我放在那里的任何调试消息。
此外,我评论了函数 deflateInit _ 中的所有现有代码,并从函数Z_BUF_ERROR
返回不同的错误,但仍然 deflateInit _ 正在返回Z_MEM_ERROR
。
如果我在解释Z_BUF_ERROR
,我仍然是getting Z_MEM_ERROR
。
请告诉我这种行为背后的一些指示。
答案 0 :(得分:1)
这意味着它所说的。 zlib正在调用malloc()
,它正在返回NULL
。这可能是因为malloc()
没有足够的内存来满足请求。使用默认参数进行收缩需要分配大约260K才能运行。