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

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

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

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

23.09.2012, 17:43. Просмотров 842. Ответов 4
Метки нет (Все метки)

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

C++ Выделение динамической памяти для матрицы
Выделение памяти для строки символов C++
Выделение памяти для массива C++
Выделение памяти для массива C++
C++ Выделение оперативной памяти для потока
Выделение динамической памяти для char C++
C++ Выделение памяти в куче для строки для реализации длинной арифметики
Выделение памяти для массива C++
C++ Выделение и освобождение памяти для локальных переменных функций
C++ Выделение памяти для строки
Выделение памяти для указателя C++
Динамическое выделение памяти. Использование функций для обработки двумерных массивов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 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     Выделение оперативной памяти для функций
Ответ Создать тему
Опции темы

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