【问题标题】:why gzwrite vector is diffent from gzwrite array with the array value is same?为什么 gzwrite 向量与 gzwrite 数组不同,数组值相同?
【发布时间】:2020-03-06 06:42:51
【问题描述】:

我将相同的值放在不同的容器(向量和数组)中并通过zlib lib 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

【问题讨论】:

    标签: c++ gzip


    【解决方案1】:
    vector<unsigned char> b({ 'n','h','h' });
    gzwrite(fi,&b, size(b));
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 2021-12-02
      • 2015-11-29
      • 1970-01-01
      • 2011-08-24
      相关资源
      最近更新 更多