Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
32 / 29 / 3
Регистрация: 10.01.2017
Сообщений: 1,227
1

Переменные созданные в функции создаются в стеке или в куче ?

25.08.2019, 09:33. Показов 1179. Ответов 1
Метки нет (Все метки)

Здравствуйте,

Подскажите пожалуйста:
C++
1
2
3
4
5
6
7
8
9
10
11
void foo(int a)
{
vector <int> vector_a;
 
vector_a.push(a);
}
 
int main()
{
Int a = 10;
}
Вот переменная "a" переданная в функцию через создание копии и сам вектор с добавленным значением, они создались в куче или в стеке ?
Я бы предположил, что в стеке, ведь после завершения функции вме переменны созданные в этой функции автоматически удалятся, а в куче, как я понял автоматически ничего не удаляется.
Но в гугле говорится, что размер стека , что то порядка ~ 1 мб, это значит, что если я сделаю 10 тыщ пушбеков, стек должен был бы переполнится и появится ошибка ? Но вроде не появилась. Поэтому и вопрос.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2019, 09:33
Ответы с готовыми решениями:

Интерфейс хранится в стеке или в куче?
интерфейс хранится в стеке или в куче?

Создание QApplication на стеке или в куче
Только начал разбираться с QT и появилось неск. глупых вопросов: - Какая разница между ...

Проверить где находится элемент: в стеке или в куче?
можно как-то проверить элемент находится в стеке или в куче? int i = 4; object o = i; вот...

Не могу понять где объект в куче или в стеке !
Сразу к примеру: class Zombie; { Soldat soldat; // что солдат внутри зомби делает не...

1
278 / 250 / 209
Регистрация: 14.11.2016
Сообщений: 948
25.08.2019, 09:52 2
Лучший ответ Сообщение было отмечено Optimus11 как решение

Решение

Объект STL вектора хранит в себе указатель для которого выделяется память под массив, т.е. указатель на адрес относящийся к куче. Сам объект находится на стеке, если не выделяли память динамически. При выходи из области действия объект должен быть удален из стека, но перед этим сработает деструктор, который освободит выделенную память для массива.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2019, 09:52

Если для структуры используется оператор new, то память выделяется в куче или на стеке?
Если для структуры используется оператор new, например, так: struct SomeStruct { }

Расположение данных в стеке и в куче
Друзья, возник вопрос. Следующий код char length_buffer; ...заполнение length_buffer двоичным...

Создание массивов в стеке и куче
&quot;Напишите небольшую программу,которая создаёт массивы в стеке(массивы фиксированного размера) и...

Несколько моментов про хранение в куче и в стеке
Хотел уточнить несколько моментов про хранение в куче и в стеке: 1) Ссылочные типы всегда...

Как происходит процесс выделения памяти в стеке и куче
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include &quot;disc.h&quot; void main() { ...

Как выделяется память на стеке и на куче? Когда нужна ручная очистка?
Всем здрасьте. //1 char s = 's'; //2 char* ss = new char; Во втором случае компилятор...


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

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

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