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

C++

Войти
Регистрация
Восстановить пароль
 
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151
#1

Стек и куча - C++

28.07.2016, 13:54. Просмотров 336. Ответов 6
Метки нет (Все метки)

Вот говорят, что для стека доступного места меньше, чем для кучи. И если есть много переменных большого размера, то лучше создавать их через new. а почему так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2016, 13:54     Стек и куча
Посмотрите здесь:

Стек и куча - C++
Вроде разобрался с этими зверями, хочется уточнить некоторые моменты на понимание: физически они в ОЗУ, сначала сегмент кода программы,...

Что такое куча,стек,очередь? - C++
Доброго Вам времени суток форумчане! Краткость сестра таланта, по этому сразу к делу. Объясните мне пожалуйста что такое куча, что такое...

Стек и куча: как все это работает? - C++
Добрый вечер, подскажите пожалуйста хорошую литературу (сайты) по куче и стеку. Как оно все работает? Насколько я понял все статические...

Память. Стек или куча - есть ли преимущества одного кода над другим? - C++
Здравствуйте, хотел спросить в чем различия. В чем тут недостатки и преимущества разных способов? Apple apple(); и Apple *apple = new...

Стек или куча: как "правильно" создавать объекты классов? - C++
У меня несколько странновато-ламерский вопрос, но ведь в том и смысл: чтобы таких вопросов не осталось, на них один фиг сначала нужно...

биномиальная куча - C++
подкиньте какой литературы или пример формирования и редактирования биномиальной кучи, буду очень благодарен

Повреждена куча - C++
Запускаю - если ввожу любое число больше 2х, то все работает. Но если пишу количество: 2, программа не воспроизводит результат. И пишет,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nimazzzy
Заблокирован
28.07.2016, 14:18     Стек и куча #2
Потому что стека может не хватить. Стек, теоретически, считается уже выделенной областью память для твоего приложения, и поэтому работает быстрее. Если заранее выделять под стек каждого приложения 2 Gb памяти, много ли программ одновременно поднимутся?
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151
28.07.2016, 14:58  [ТС]     Стек и куча #3
Ну то есть получается, что нет его четкого размера? Просто выделяется некий фиксированный объем, определяемый операционной системой и всё?
Hikari
Хитрая блондиночка $)
1447 / 954 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
28.07.2016, 15:09     Стек и куча #4
Цитата Сообщение от xTr1m Посмотреть сообщение
то есть получается, что нет его четкого размера?
Почему нет? Размер стека задается в РЕ заголовке. Сколько задашь при компиляции - столько загрузчик и выделит.
karat39
4 / 4 / 1
Регистрация: 09.02.2016
Сообщений: 74
28.07.2016, 21:29     Стек и куча #5
Коллеги, а где почитать про стек и кучу? Вовремя вопрос задали, как раз плотно интересуюсь.
Хочу доказательства, что работа с переменными через стек (статическими) идет быстрее, чем через кучу (динамически). Сам планирую потестировать на выходных скорость, если это получится.

Заранее спасибо.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,223
Записей в блоге: 1
Завершенные тесты: 1
28.07.2016, 23:05     Стек и куча #6
Цитата Сообщение от karat39 Посмотреть сообщение
Хочу доказательства, что работа с переменными через стек (статическими) идет быстрее, чем через кучу (динамически).
Именно работа (не создание/уничтожение), т.е. скорость чтения/записи одинакова. Скорость обращения что к первому, что ко второму зависит от нахождения кэш-линии в кэше.

Добавлено через 28 секунд
Цитата Сообщение от karat39 Посмотреть сообщение
через стек (статическими)
правильно говорить "автоматическими".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2016, 23:44     Стек и куча
Еще ссылки по теме:

Куча вопросов.. - C++
В связи с последовательным изучением С++ и с параллельным при этом отсутствием рабочего подключения к Интернету у меня накопилась куча...

что такое КУЧА? - C++
что такое КУЧА?

Куча непонятных ошибок - C++
Вот код: #include "stdafx.h" #include <iostream> #include <fstream> int main() { std::ifstream ifs("test.txt",...

Сервер и куча клиентов - C++
Как реализовать это с помощью boos asio? Это надо делать столько-же акцнпторов, сколько клиентов, и столько-же сокетов? А через один порт...

Что такое куча - C++
new (C++) Материал из Википедии — свободной энциклопедии new — оператор языка программирования C++, обеспечивающий выделение...


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

Или воспользуйтесь поиском по форуму:
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
28.07.2016, 23:44     Стек и куча #7
Цитата Сообщение от xTr1m Посмотреть сообщение
а почему так?
Кроме размеров есть еще один ньюанс - высвобождается память со стека строго в порядке обратном распределению. Из кучи в произвольном. Соответственно если время жизни объектов заранее не известно (имеется в виду какой проживет дольше а какой меньше), либо возможно изменение размеров объекта в произвольный момент времени (в т.ч. и после распределения на стеке следующих объектов), стек как хранилище отпадает.
Yandex
Объявления
28.07.2016, 23:44     Стек и куча
Ответ Создать тему
Опции темы

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