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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
23.09.2012, 17:47     Выделение оперативной памяти для функций #2
По другой. При вызове функции для её переменных выделяется место на стеке (который сам по себе уже выделен заранее, при запуске программы). При завершении работы функции выделенный участок стека освобождается.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
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 возникает, когда не хватает памяти под стек
А если программа состоит из функций, которые в конце ссылаются на новые, это будет засорять память?
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++
Помогите пожалуйста разобраться в одном примере: #include "stdafx.h" #include <iostream> using namespace std; int main() { ...

Выделение динамической памяти для матрицы - C++
Эта программа преобразует матрицу со случайными числами в матрицу, которая показана на рисунке ниже. Ее нужно переделать так, чтобы...

Выделение памяти для мат операций - C++
Здравствуйте! Подскажите как можно выделить память с размером под 2 переменные(по 2 байта), математический знак (1 бит), ответ с их...

Выделение памяти для строки символов - C++
Нужно выделить память под массив указателей на строки, ввести текст построчно динамически выделяя память для каждой строки и записывая...


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

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

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