小弟最近用到压缩解压,选择使用zlib库,解压缩时,总是在 uncompress 处发生异常:0xC0000005: 读取位置 0xcdcdcdcd 时发生访问冲突。。。纠结了3天,无果,特来求救。
代码:(暂不考虑在文件中保存大小,用最简单的方法,测 uncompress)
//定义接收缓冲区
const int MAX_BUFFER_SIZE = 1024*1024*4;
unsigned char DATA_BUFFER[MAX_BUFFER_SIZE];
//函数
{
FILE *f1 = fopen(cFileName,"r");
if (f1)
{
int Len; //解压文件长度
fseek(f1,0,2);
Len = ftell(f1);
fseek(f1,0,0);
char *data = new char[Len ];
fread(data,1,Len ,f1); //读取文件内容到 data
fclose(f1);
uLong dst_len = MAX_BUFFER_SIZE;
Bytef * dst = (Bytef*)DATA_BUFFER; //接收解压文件
uncompress(dst,&dst_len,(Bytef *)data,(uLong)Len ); //解压
}
delete [] data;
}
注:使用几kb的小文件进行压缩、解压。总是在 uncompress 处异常
请各位路过的兄弟们,帮一把。。。多谢!分不多,请笑纳