Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Выделение оперативной памяти для потока - C++
Господа, подскажите пожалуйста, можно ли выделить каждому из потоков в процессе свою область памяти? К примеру, каждому из, например, 8...

Выделение и освобождение памяти для локальных переменных функций - C++
Привет Столкнулся со следующей проблемой. Написал простенькое приложение: читаем 1 строку из файла на диске, записываем 1 строку в файл...

Динамическое выделение памяти. Использование функций для обработки двумерных массивов - C++
не понимаю что делаю хотя задание такое 1.2. Постановка задачи Задача 1. Разработать алгоритм и программу выполняющую следующие...

Выделение памяти в куче для строки для реализации длинной арифметики - C++
Доброго времени суток, пишу класс string, на основе которого потом хочу реализовать класс для длинной арифметики. Поэтому мне понадобился...

Выделение памяти для массива - C++
верно ли выделил память для массива если нет поправьте, заранее спасибо) class type { private: int ***p; int x, y, z; public: ...

Выделение памяти для указателя - C++
Помогите пожалуйста разобраться в одном примере: #include "stdafx.h" #include <iostream> using namespace std; int main() { ...

4
Nick Alte
Эксперт С++
1643 / 1015 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
23.09.2012, 17:47 #2
По другой. При вызове функции для её переменных выделяется место на стеке (который сам по себе уже выделен заранее, при запуске программы). При завершении работы функции выделенный участок стека освобождается.
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
23.09.2012, 17:59 #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
По другой. При вызове функции для её переменных выделяется место на стеке (который сам по себе уже выделен заранее, при запуске программы). При завершении работы функции выделенный участок стека освобождается.
это не исключает возможность выделения памяти
когда стек исчерпывается (под виндой ~12 Mb), то создается новый стек
соответственно под него могут быть выделены новые виртуальные страницы

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

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

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

сам эффект stack overflow возникает, когда не хватает памяти под стек
А если программа состоит из функций, которые в конце ссылаются на новые, это будет засорять память?
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
23.09.2012, 23:12 #5
Цитата Сообщение от PedRo87 Посмотреть сообщение
А если программа состоит из функций, которые в конце ссылаются на новые, это будет засорять память?
при выходе память стека освобождается, если конечно не используется память из кучи
0
23.09.2012, 23:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2012, 23:12
Привет! Вот еще темы с ответами:

Выделение памяти для строки - C++
Почему размер строки первой 4 байта а второй 50 байт?Первая должна сколько же. #include <stdio.h> #include <Windows.h> #include...

Выделение памяти для массива - C++
Пишу такой код: int main() { int* arr1 = new int; } Всё норм. Теперь такой:

Выделение памяти для массива - C++
Вопроса похожего не нашел, в задаче требуется считать матрицу из текстового файла,выделение хотелось бы реализовать следующим образом: ...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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