Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 28.09.2011, 20:31
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

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



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
А что быть может нам милее:кусок жратвы или кусок неба??? Guest Ещё вопросы и ответы из архива 4 0 19.01.2012 05:01
Люди, мне нужна прога для форматирования музыки например, вырезаешь кусок из одной песни, вставляешь кусок из другой и Guest Ещё вопросы и ответы из архива 7 0 18.01.2012 22:05
из QBitArray в QbyteArray Guest Продолжение старого архива 0 30.09.2011 21:06



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