Ваш outBuffer
является указателем NULL. Вы не можете передать NULL-указатель в качестве выходного буфера для compress2, для compress2 требуется некоторое пространство для хранения сжатых данных, поэтому выделите буфер, который compressBound (inSize) большой. Из прототипа сжатия2 видно, что вы не можете выделить compres2 и «вернуть» такой буфер обратно.
Редактировать, поскольку фактическая ошибка на этом этапе - Z_STREAM_ERROR, это потому, что вы перешли на недопустимый уровень.
compress2 возвращает Z_OK в случае успеха,
Z_MEM_ERROR если было недостаточно
память, Z_BUF_ERROR, если не было
достаточно места в буфере вывода,
Z_STREAM_ERROR, если параметр уровня
неверно.
Вы должны использовать один из следующих уровней:
#define Z_NO_COMPRESSION 0
#define Z_BEST_SPEED 1
#define Z_BEST_COMPRESSION 9
#define Z_DEFAULT_COMPRESSION (-1)