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

C++

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

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

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

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

Как создать стек объектов произвольного типа? - C++
Предметная область: «Стек объектов произвольного типа». Данные класса: динамический список элементов стека. Функции класса: считывание...

Куча ошибок на рабочем коде. Скомпилируйте у себя - C++ Builder
Сегодня, на рабочем вчера коде, получил кучу ошибок... Добавил всего один .h файл с несколькими функциями (делал по примеру, который...

Стек :( - C++ Builder
Из созданного списка удалить элементы, заканчивающиеся на цифру 5О_о

Стек. Удаление элементов - C++ Builder
Задание "Реализовать список типа LIFO (стек), добавление элемента, удаление всего стека, удаление последнего добавленного". Вот код: ...

стек из динамического массива - C++ Builder
Здравствуйте! Нужно разработать стек, представленный динамическим массивом хранимых объектов для дальнейшей обработки. сам в билдере лузер....

Самопальный стек для пользователей. - C++ Builder
Добрый день или вечер) Дело состоит в очень муторном куске кода, воистину странным. В проекте цель этого стека записать ID...

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

Заранее спасибо.
0
Kastaneda
Jesus loves me
Эксперт С++
4747 / 2951 / 242
Регистрация: 12.12.2009
Сообщений: 7,484
Записей в блоге: 2
Завершенные тесты: 1
28.07.2016, 23:05 #6
Цитата Сообщение от karat39 Посмотреть сообщение
Хочу доказательства, что работа с переменными через стек (статическими) идет быстрее, чем через кучу (динамически).
Именно работа (не создание/уничтожение), т.е. скорость чтения/записи одинакова. Скорость обращения что к первому, что ко второму зависит от нахождения кэш-линии в кэше.

Добавлено через 28 секунд
Цитата Сообщение от karat39 Посмотреть сообщение
через стек (статическими)
правильно говорить "автоматическими".
0
Fulcrum_013
806 / 985 / 102
Регистрация: 14.12.2014
Сообщений: 8,516
Завершенные тесты: 3
28.07.2016, 23:44 #7
Цитата Сообщение от xTr1m Посмотреть сообщение
а почему так?
Кроме размеров есть еще один ньюанс - высвобождается память со стека строго в порядке обратном распределению. Из кучи в произвольном. Соответственно если время жизни объектов заранее не известно (имеется в виду какой проживет дольше а какой меньше), либо возможно изменение размеров объекта в произвольный момент времени (в т.ч. и после распределения на стеке следующих объектов), стек как хранилище отпадает.
0
28.07.2016, 23:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2016, 23:44
Привет! Вот еще темы с ответами:

ассемблер в билдере. Стек fpu - C++ Builder
Как обратиться в билдере к ячейке стека fpu? Пишу так: ... double a=3.4; double c; __asm { fld a fmul st

Стек(ошибка в тексте программы) - C++ Builder
Всем привет. Тут такая проблема. Хочу написать стек на С++(Builder 6) компилятор выдает ошибку в строке struct list_elem *elem =...

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

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


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

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

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