Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/133: Рейтинг темы: голосов - 133, средняя оценка - 4.60
87 / 87 / 1
Регистрация: 19.06.2012
Сообщений: 245
1

Задача с собеседования (аллокатор памяти)

02.09.2012, 00:16. Показов 24942. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос звучит так: "Напишите быстрый аллокатор памяти"
Как я его понимаю: можно пожертвовать растратой памяти, всякими наворотами, возможно максимальной величиной обьекта..

Может у кого-то есть какие-то варианты? Мне что-то ничего в голову не приходит кроме как заранее поделить пул на поля с фиксированным размером N и завести битовое поле в котором храним флаги занято/свободно.. Может подкинете пару идей?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2012, 00:16
Ответы с готовыми решениями:

Аллокатор памяти общего назначения
Добрый день! В ВУЗе задали написать аллокатор памяти общего назначения на С++, но у меня нет ни...

Задача с собеседования
Всем привет! Недавно был на собеседование. Было много вопросов по строкам. Такое объявление строки...

Кастомный аллокатор
Не уверен, что это "для начинающих", но этот раздел подходил больше всех. Итак, объясню вкратце...

Аллокатор в chrome
Всем привет, начал изучать исходники хрома, в аллокаторе, метод realloc должен возвращать nullptr...

23
87 / 87 / 1
Регистрация: 19.06.2012
Сообщений: 245
02.09.2012, 19:58  [ТС] 21
Author24 — интернет-сервис помощи студентам
Мне кажется в варианте во 2ом посте баг: если выделить 2 блока, потом освободить 1ый, то когда выделим 4ый он перезапишет 2ой (надеюсь я понятно обьяснился).. Или я что-то упустил?
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
02.09.2012, 23:35 22
Да, внутри функции она точно так же создавалась бы единожды при входе в программу и сохраняла свое значение вплоть до завершения, локальная static переменная подобна глобальной, но с усеченной областью видимости.
Извиняюсь, дал более сильное суждение, чем на деле. Локальная static будет инициализирована лишь при первом достижении её потоком выполнения (то есть при первом вызове alloc, так что поведение не изменится, ведь она нужна лишь для работы alloc ). В остальном - все так же.
1
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
03.09.2012, 00:12 23
Цитата Сообщение от Герц Посмотреть сообщение
Извиняюсь, дал более сильное суждение, чем на деле. Локальная static будет инициализирована лишь при первом достижении её потоком выполнения (то есть при первом вызове alloc, так что поведение не изменится, ведь она нужна лишь для работы alloc ). В остальном - все так же.
Я так понимаю, глобальная static-переменная будет инициализирована при запуске программы, а не функции, как в случае с локальной static-переменной, в этом вся разница?
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
03.09.2012, 00:22 24
Proof by fire. Да, в этом разница.
1
03.09.2012, 00:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2012, 00:22
Помогаю со студенческими работами здесь

Быстрый аллокатор
Собственно, необходим аллокатор для быстрого выделения памяти под мелкие объекты, совместимый со...

Класс аллокатор
Какие требования к написанию класса Аллокатора?

Пишем аллокатор
дабы не захламлять и так уже захламленную тему про перегрузку операторов создаю новую тему,...

Пародия на стековый аллокатор
здравствуйте, решил тут чуток поиграться... сделать аллокатор чтобы данные в статическом буфере...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru