我目前正在将代码从另一个堆栈溢出问题uncompresses data from a QByteArray
集成到应用程序中。
由于我们启用了所有编译器错误,我们必须reinterpret_cast和const_cast QByteArray :: data():
z_stream strm;
strm.next_in = reinterpret_cast<Bytef *>(const_cast<char *>(data.data()));
为什么这个输入参数是非常量的?在我看来,这表明,数据以某种方式被修改,这绝对不是我想要的,也不是我认为实际发生的事情。
答案 0 :(得分:6)
默认情况下,z_stream
接口函数不是const
,可能是出于遗留原因。
您可以使用const
运行configure
来构建具有--const
支持的zlib。