Есть выделенный кусок памяти, к примеру, и с ним производится какая нибудь операция:double* array = new char[ 40000000 ]; ( специально побольше, для примера )И необходимо создать QByteArray из этого array.Собственно, проблема в том, что QByteArray имеет методы только QByteArray(const char* data, int len ), setData(const char* data, int len ),соотвественно, для получение желаемого результата QByteArray самолично выделить такой же кусок памяти.НО array больше в программе нигде не будет нужен. Таким образом, мы впустую тратим процессорное время и память.Можно ли как-то заставить QByteArray принять array без копирования его в новую область памяти?Я знаю, что можно поступить следующим образом:QByteArray ar;ar.resize( 40000000*sizeof(double) );double* array = reinterpret_cast( ar.data() );Но это лишь в том случае, если я управляю выделением памяти для array. Если же array создается в сторонней библиотеке,то возможность подобного телодвижения у меня отсутствует...
|