Название: ручное распределение памяти для массива объектов класса Qt Отправлено: Zeka13 от Май 13, 2012, 19:35 Всем доброго времени суток, умею в ручную распределять и освобождать память для массивов стандартных типов
Код
Код в классе массив описан как int** a; у меня есть некий массив в классе QGraphicsPixmapItem *pPixmapItem[100][100]; хочу точно так же выделять для него вручную память, но ничего не получилось у меня, помогите пожалуйста ежить эту задачу, заранее спасибо! Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: kambala от Май 13, 2012, 20:26 но ничего не получилось у меня а где код как у тебя не получилось?имей в виду, что в данном случае у тебя, проводя аналогию с твоим примером, тип int ***, а не int ** Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Zeka13 от Май 13, 2012, 20:49 Цитировать тип int ***, а не int ** kambala, не понял совсем васЦитировать а где код как у тебя не получилось? зачем вам нерабочий код? Или вы мне не верите?Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: kambala от Май 13, 2012, 21:04 Цитировать тип int ***, а не int ** kambala, не понял совсем васты хочешь создать двумерный массив указателей на QGraphicsPixmapItem, что по сути является указателем на указатель на указатель. логика тут абсолютно такая же, просто добавится еще одно вложение цикла for. зачем вам нерабочий код? Или вы мне не верите? чтобы указать на ошибкуНазвание: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Zeka13 от Май 13, 2012, 21:26 как то так получается?
Код
Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: kambala от Май 13, 2012, 23:14 это у тебя 3-х мерный массив вышел :)
если ты хочешь полностью управлять памятью руками, то надо объявлять свою матрицу как QGraphicsPixmapItem ***pPixmapItem и убрать один внутренний for из предыдущего кода (ну и индексы подрихтовать соответственно); если же нужно использовать то, что написано в первом посте, то у тебя память уже выделена под 10 тысяч элементов типа QGraphicsPixmapItem *, но присваивать в матрицу надо в виде Код
Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Igors от Май 14, 2012, 00:13 Здесь хорошо typedef напр
Код
Код
По поводу использования ++ контейнеров разговор уже был. Подход "сначала сделать базовыми средствами языка" возможен и имеет смысл, но требует большей аккуратности Код
Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Zeka13 от Май 14, 2012, 09:52 Цитировать Чего же выделяем xSize а освобождаем xSize+1 ? ачепятка, у меня везде просто xSize+1 Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Zeka13 от Май 14, 2012, 09:53 вот тако в итоге?
Код
Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Igors от Май 14, 2012, 14:35 Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Пантер от Май 14, 2012, 14:44 Используй вектор векторов указателей.
Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Zeka13 от Май 14, 2012, 14:44 тогда я не понимаю как сделать
Название: Re: ручное распределение памяти для массива объектов класса Qt Отправлено: Igors от Май 14, 2012, 14:53 тогда я не понимаю как сделать АккуратноКод
|