为什么gzwrite向量和数组值相同的gzwrite数组不同

why gzwrite vector is diffent from gzwrite array with the array value is same?

本文关键字:数组 gzwrite 为什么 向量      更新时间:2023-10-16

我把相同的值放在不同的容器(向量和数组(中,并用zlib lib进行gzwrite,但结果不同。

函数gzwrite将未签名的char[]写入gz文件

gzFile fi = gzopen(geopath, "wb");
unsigned char a[]= { 'n','h','h' };
vector<unsigned char> b({ 'n','h','h' });
gzwrite(fi, a, size(a));
//gzwrite(fi,&b, size(b));
gzclose(fi);

写入数组,输出为6E66868(预期结果(写入矢量输出为00AF27

vector<unsigned char> b({ 'n','h','h' });
gzwrite(fi,&b, size(b));

这里有一个指向整个b变量的指针,其中包含std::vector的内部大小和容量字段。

请改用gzwrite(fi, b.data(), size(b));