为什么 gzwrite 向量与 gzwrite 数组不同,数组值相同?
why gzwrite vector is diffent from gzwrite array with the array value is same?
我把相同的值放在不同的容器(向量和数组)中,然后通过 zlib 库 gzwrite 它们,但结果不同。
函数 gzwrite 将 unsigned 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);
写入数组输出为6E6868(预期结果)
写向量输出是 00AF27
vector<unsigned char> b({ 'n','h','h' });
gzwrite(fi,&b, size(b));
这里取一个指向整个b
变量的指针,其中包含std::vector
的内部大小和容量字段。
改用gzwrite(fi, b.data(), size(b));
。
我把相同的值放在不同的容器(向量和数组)中,然后通过 zlib 库 gzwrite 它们,但结果不同。
函数 gzwrite 将 unsigned 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);
写入数组输出为6E6868(预期结果) 写向量输出是 00AF27
vector<unsigned char> b({ 'n','h','h' });
gzwrite(fi,&b, size(b));
这里取一个指向整个b
变量的指针,其中包含std::vector
的内部大小和容量字段。
改用gzwrite(fi, b.data(), size(b));
。