我正在使用具有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吗?请帮助我
提前谢谢