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

Выделение оперативной памяти для функций - C++

Восстановить пароль Регистрация
 
PedRo87
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 57
23.09.2012, 17:43     Выделение оперативной памяти для функций #1
Здравствуйте. Выделяется ли оперативная память для функций во время их вызова? Или там все идет по другой схеме?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 17:43     Выделение оперативной памяти для функций
Посмотрите здесь:

C++ Выделение динамической памяти для матрицы
Выделение памяти для массива C++
Выделение памяти для массива C++
C++ Выделение оперативной памяти для потока
Выделение динамической памяти для char C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
23.09.2012, 17:47     Выделение оперативной памяти для функций #2
По другой. При вызове функции для её переменных выделяется место на стеке (который сам по себе уже выделен заранее, при запуске программы). При завершении работы функции выделенный участок стека освобождается.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
23.09.2012, 17:59     Выделение оперативной памяти для функций #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
По другой. При вызове функции для её переменных выделяется место на стеке (который сам по себе уже выделен заранее, при запуске программы). При завершении работы функции выделенный участок стека освобождается.
это не исключает возможность выделения памяти
когда стек исчерпывается (под виндой ~12 Mb), то создается новый стек
соответственно под него могут быть выделены новые виртуальные страницы

+ я не уверен, но полагаю, что и во время хождению по стеку могут выделяться страницы

сам эффект stack overflow возникает, когда не хватает памяти под стек
PedRo87
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 57
23.09.2012, 21:42  [ТС]     Выделение оперативной памяти для функций #4
Цитата Сообщение от alex_x_x Посмотреть сообщение
это не исключает возможность выделения памяти
когда стек исчерпывается (под виндой ~12 Mb), то создается новый стек
соответственно под него могут быть выделены новые виртуальные страницы

+ я не уверен, но полагаю, что и во время хождению по стеку могут выделяться страницы

сам эффект stack overflow возникает, когда не хватает памяти под стек
А если программа состоит из функций, которые в конце ссылаются на новые, это будет засорять память?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
23.09.2012, 23:12     Выделение оперативной памяти для функций #5
Цитата Сообщение от PedRo87 Посмотреть сообщение
А если программа состоит из функций, которые в конце ссылаются на новые, это будет засорять память?
при выходе память стека освобождается, если конечно не используется память из кучи
Yandex
Объявления
23.09.2012, 23:12     Выделение оперативной памяти для функций
Ответ Создать тему
Опции темы

Текущее время: 00:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru