有什么方法可以访问作为联合会成员的QByteArray成员

时间:2019-06-23 19:24:11

标签: c++ qt c++11 union qbytearray

我正在使用具有2个成员的联盟。一个类型为 QByteArray ,另一个类型为 double 。我想在更改值的双精度数组之后访问QByteArray成员。

我已经尝试过使用char *(大小= 8)和双工会成员。没问题。

 union smt{
        QByteArray qbyte;             
        double *data;
        ~smt(){}    // needs to know which member is active, only possible in union-like class
    };

     smt x={"sometng"};
     double *result =...;  
     memcpy(x.data,result,sizeof (double)); // copy result to x.data

在这段代码中,我想在更改数据数组后访问 QByteArray的值。基本上,我想获得字符串值 corresponding 的双精度值。 如果他们共享相同的内存空间,从理论上讲是可能的,对吧?

但是,更改数据数组后,出现运行时错误,即QByteArray “不可访问”

我错过了一些东西或做错了smtg吗?请帮助我

提前谢谢

0 个答案:

没有答案