памяти из под массива объектов?
Вот допустим для примера у меня есть динамический массив:
int *numbers = new (std::nothrow) int[2'000'000];
И вот так случилось что какая-то часть из этого пространства мне попросту не пригодилась, могу ли я избавится от этого пространства без реаллокации?
Поидее нет.
Грусть печаль
Надо самому память менеджить в таком случае, и писать код который будет как то переиспользовать не нужное
В этом вряд ли есть особый смысл, скажем, на х64
Есть хороший линк на эту тему? а то у меня какие-то наивные знания об устройстве адресного пространства
Ну посмотри, что такое виртуальная память, и подумай, что лишний слой трансляции в действительности решает этот вопрос
ну т.е. поинт в том, что память и так не будет реально выделена, а только в таблицах?
Поинт в том, что система если что и так займётся этим вопросом, и частичная деаллокация не нужна
Ясно, "физики" за нас уже всё решили, ну и на том хорошо
Нет
Погоди, если мы записали что то в память а потом не используем, это не очень хорошо. Не зря же иногда разбивают на корзины аллокацию.
А зачем?
Так а какой вопрос? Нет вопроса
Просто стало интересно, можно ли такое сделать¯\_(ツ)_/¯
Нет поинт в том что вы дурью маетесь, хрень какую-то придумали и теперь вам её дать надо
Просто аллокатору отдать нельзя, но при должном усердии можно выбить физические страницы из-под неиспользуемых регионов
Какие корзины? Надо тебе N/10 памяти - не выделяй N, и всё
Обсуждают сегодня