Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 3 (https://www.otvetnemail.ru/novyj-arhiv-3-813/)
-   -   QByteArray и выделенный кусок памяти (https://www.otvetnemail.ru/novyj-arhiv-3-813/qbytearray-i-vydelennyj-kusok-pamyati-261520/)

Guest 28.09.2011 20:31

QByteArray и выделенный кусок памяти
 
Есть выделенный кусок памяти, к примеру, и с ним производится какая нибудь операция: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 создается в сторонней библиотеке,то возможность подобного телодвижения у меня отсутствует...


Часовой пояс GMT, время: 23:37.


© www.otvetnemail.ru - Форум вопросов и ответов.