![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
roko |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
предположим у меня есть класc
в программе выделяется буфер, например:
Как мне создать 10 объектов Person так, чтобы они размещались в буфере buf? И можно ли так использовать sizeof? Это сообщение отредактировал(а) roko - 24.1.2010, 23:20 |
||||
|
|||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
roko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
andrew_121, я в курсе что так можно, но мне надо разместить объекты в уже выделенном буфере. Например, в начале буфера будут одни данные, а потом массив из Person.
вот, нашел пример, но здесь только для одной переменной:
Это сообщение отредактировал(а) roko - 25.1.2010, 01:08 |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
В моей глупой голове родилось что-то такое:
Но это С-стайл. Я уверен, есть специальные С++-ные библотечки. А-ля шаблоны сериалайза в память или переопределенные операторы new. |
|||
|
||||
roko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
comcon1, у вас только первый элемент массива будет, но в принципе ясно. Спасибо. Хотелось бы в одну строчку или как-нибудь так, чтобы меньше писать.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
такое годится только для pod-объектов roko, Вам поможет placement new. А узнать что это такое поможет гугль ![]() |
|||
|
||||
roko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
mes, если мне надо массив из 10 Person, то правильно ли я делаю? :
Это сообщение отредактировал(а) roko - 25.1.2010, 02:33 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
roko, нет. Нужно сначала вызвать деструкторы для всех Person, затем delete []buf
|
|||
|
||||
roko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
bsa, а если так?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 3 Всего: 13 |
Нескромный вопрос. А зачем так извращаться? -------------------- вопросов больше чем ответов |
|||
|
||||
roko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
bsa, огромное спасибо
![]()
а как, по вашему мнению, надо? Ну а если вы о том зачем вообще мне создавать переменные в буфере... Мне нужно выделять память небольшими кусками под разные объекты, но в диспетчере задач видно, что если часто использовать new то памяти расходуется гораздо больше, чем если один раз вызвать new. А мне какраз нужно фиксированное число объектов. |
|||
|
||||
saneea |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
roko, а можно ещё писать собственные распределители памяти... |
|||
|
||||
roko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
saneea, обязательно почитаю о распределителях, но пока достаточно и этого.
Всем спасибо. ![]() Это сообщение отредактировал(а) roko - 25.1.2010, 20:06 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |