Есть ли способ получить доступ к члену QByteArray, который является членом союза - PullRequest
0 голосов
/ 23 июня 2019

Я использую 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 «недоступен»

Я что-то упустил или делаю что-то неправильно? Пожалуйста, помогите мне

Заранее спасибо

...