Я использую union , в котором есть 2 участника. Один тип QByteArray , другой double . Я хочу получить доступ к членам QByteArray после изменения значения двойного массива.
Я пробовал это с использованием char * (size = 8) и двойных членов union. Проблем не было.
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 после изменения массива данных. В основном я хочу получить строковые значения , соответствующие двойным значениям.
Если они совместно используют то же пространство памяти , теоретически это возможно, верно?
Однако после изменения массива данных я получил ошибку во время выполнения, которая говорит, что QByteArray «недоступен»
Я что-то упустил или делаю что-то неправильно? Пожалуйста, помогите мне
Заранее спасибо