Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Plusic
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 26
#1

malloc и new (динамическая память) - C++

10.12.2012, 21:53. Просмотров 361. Ответов 2
Метки нет (Все метки)

Ребят, привет. ОЧчень интересует вопрос с динамической памятью . Как эта штука реализованна внутри ? я понимаю, что процессу выделяется в 32 битных приложениях 4 гб адрессное пространство максимально. В Windows в частности 2 гб (поправте меня, если я не права). Часть забирают системные вызовы, часть сама программа: часть стек, часть под глобальную память и т.д Вот на ассемблере, эта штука доступна программисту, и пользуется он этим делом ,как душа пожелает. А вопрос вот: в c/с++ такая штука не доступна изначально ,и получается функция malloc и оператор new ?просто круто оперируют с этим адресным пространством ? или все хитро, и они запрашивают память у ОС, и уже она отвечает за динамическую память? Или я все путаю, поправте меня. Расскажите чуть-чуть. И если можно как эта штука вся работает. Очень интересно. Можно ли такую штуку сделать и не пользоваться malloc, чисто из академических соображений. Всем спасибо.

Добавлено через 2 часа 36 минут
такая каша в голове.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 21:53     malloc и new (динамическая память)
Посмотрите здесь:

И снова динамическая память, malloc и free в конструкторе и деструкторе - C++
Короче есть, класс, который например хранит строку, я его храню в структуре, после я выдиляю динамическу память пот эту структуру и копирую...

Как malloc выделяет память? - C++
Почему, если я выделяю память для одного int, вот так int *myArray = (int *)malloc(sizeof(int)); То в итоге я могу записать в myArray...

Статическая память,Динамическая память. - C++
a) Статическая память. Двумерный массив. Дан массив целых чисел. В массиве есть отрицательные числа. Определить координаты левого нижнего...

Нужно ли под массив выделять память функциями malloc или new? - C++
собственно вот программа по вводу размера массива, вводу массива, сортировки: #include <iostream> #include <windows.h> using...

Выделить память под двумерный массив за один вызов функции malloc - C++
Выделить память под двумерный массив за один вызов функции malloc Если можно - с комментариями

Динамическая память - C++
Народ, если кому не сложно помогите переделать вот эту программу со структурами нужно сделать так чтобы для хранения данных она...

Динамическая память - C++
Как создать массив A через динамическую память ???

Динамическая память и строки - C++
Подскажите пожалуйста , как выделить динамическую память под строку , а потом освободить её? это будет что-то типа такого ...? char...

Динамическая память - блоками - C++
Доброго времени суток. Опять я)) Такая проблема, я изучаю в данный момент динамическую память и научился ее добавлять каждый раз при...

Указатели и динамическая память - C++
Не могу немного понять, допустим, я хочу создать массив, зачем мне под него выделять память, почему нельзя создать указатель,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PlayaRC
5 / 5 / 0
Регистрация: 10.03.2012
Сообщений: 121
07.06.2014, 19:47     malloc и new (динамическая память) #2
не уверен, но я думаю, что malloc\free для выделения\освобождения памяти использует VirtualAlloc и VirtualFree соответственно. Ну это под виндой
Убежденный
Системный программист
Эксперт С++
15237 / 6869 / 1088
Регистрация: 02.05.2013
Сообщений: 11,246
Завершенные тесты: 1
07.06.2014, 20:30     malloc и new (динамическая память) #3
Что на C/C++, что на ассемблере, что на других языках - объем доступной
для использования в программе памяти во всех случаях одинаков.

Malloc, new, heap и т.п. - обертки над VirtualAlloc. Последняя, как известно,
умеет выделять память только гранулярностью в размер страницы (4 Кб), для
маленьких объектов это слишком расточительно. Вот для этого и нужны
такие вещи, как malloc/new.
Yandex
Объявления
07.06.2014, 20:30     malloc и new (динамическая память)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru