|
56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347
|
||||||
В какой области памяти лежат объекты?11.09.2017, 22:03. Показов 6911. Ответов 61
Метки нет (Все метки)
Здрст.
Вопрос: а где лежит объект-член 'a'? (в куче или в стеке) и с помощью какого средства можно это проверить?
0
|
||||||
| 11.09.2017, 22:03 | |
|
Ответы с готовыми решениями:
61
Вопрпос про const: в какой области памяти они находятся, и где это объявлять ? Считается ли хорошим тоном создавать объекты классов в области глобальных переменных |
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
||
| 12.09.2017, 21:26 | ||
|
в последнее время очень плотно сижу с микроконтроллерами а там с памятью напряженка, а вот регистров очень много так что локальные переменные очень часто запихиваются в регистр причем может запихать в регистр который до этого использовала другая переменная вполне возможен вариант когда область видимости равна "выделению памяти"
2
|
||
|
Неэпический
|
||||||||||||||||||||||||||||||||
| 12.09.2017, 21:44 | ||||||||||||||||||||||||||||||||
|
hoggy, время жизни объекта у нас начинается когда?
Затем всё выделение на стеке сводится к работе с регистрами. Если компилятор может посчитать сколько необходимо памяти и выделить её на стеке одним махом, то почему нет? Если же компилятор не может этого посчитать? Проще всего такое продемонстрировать на C, либо на C++ с VLA от GCC:
А возьмем такой код:
GCC вообще разбил функцию на две и построил подобный код:
0
|
||||||||||||||||||||||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||
| 12.09.2017, 21:47 | |||||
|
принципиально, что вся память под статические/автоматические объекты резервируется на этапе компиляции. на этапе исполнения происходит инициализация объектов. память же под эти объекты выделяется на этапе запуска процесса. Добавлено через 1 минуту а о тех, что случаются в момент запуска процесса, я думаю.
0
|
|||||
|
Неэпический
|
|||||||
| 12.09.2017, 21:57 | |||||||
|
Двигаем указатель, получаем выделение на стеке. Память же под стек, и, как следствие, все автоматические объекты выделяется при старте процесса/потока. Другое дело, когда будут двигаться эти самые "указатели".
а могут просто просто превратиться число для bss. Добавлено через 7 минут
1
|
|||||||
| 12.09.2017, 22:12 | |
|
Не по теме: Croessmah,
0
|
|
| 12.09.2017, 22:17 | |
|
Не по теме: Notoriously, я и не спорю. Просто примерчик того, где не всё резервируется при заходе в блок. :)
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 12.09.2017, 22:17 | ||
|
к выделениям
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 12.09.2017, 22:30 | ||
|
при запуске процесса ось выделяет ему некоторый кусок под стек. на этом все и заканчивается. компилятор рассчитал, сколько байт нужно выделить под фрейм функции. и насколько нужно двигать указатель стека. если не хватит - получим переполнение стека. то есть, можно сказать, что компилятор резервирует память под все объекты фрейма функции. но он резервирует стековую память, выделением которой он строго говоря не занимается.
1
|
||
|
Неэпический
|
|||||
| 12.09.2017, 22:56 | |||||
О чем писали все газеты.Что, тоже не удалось подобрать более подходящего термина? ![]() Резервирование может происходить "по месту".
1
|
|||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||
| 12.09.2017, 23:19 | |||||
|
на этапе загрузки процесса создаются объекты. объект - кусок памяти(ц)Страуструп. так, что бы размера фрейма гарантированно хватило под все его объекты. а уж хватит ли самого стека... Кликните здесь для просмотра всего текста
https://youtu.be/uXrKiuG-ybI
есть два объекта: 1 кг и 100 кг. но жить одновременно они не могут. следовательно, нет ни одной причины выделять под фрейм 101кг. 100кг хватит на все.
1
|
|||||
|
Неэпический
|
|||||||||
| 12.09.2017, 23:38 | |||||||||
0
|
|||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||
| 12.09.2017, 23:44 | ||||||||
|
Так то я бы не удивился, если бы он догадался подсократить майн до
0
|
||||||||
|
"C with Classes"
|
|
| 13.09.2017, 07:45 | |
|
В самой куче данные могут храниться на стеке?
0
|
|
|
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
|
|
| 13.09.2017, 11:25 | |
|
_stanislav, задам встречный вопрос, который должен стать ответом на Ваш вопрос: в левом кармане может быть правый карман?
Добавлено через 12 минут Странный однако вопрос. Помнится, Вы писали неплохой код, посмотрев на него и на Ваш код, чувствуется какой-то подвох. Или код писали не Вы?
0
|
|
|
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
|
|
| 13.09.2017, 13:13 | |
|
Не по теме: Croessmah, =-O Добавлено через 2 минуты
0
|
|
|
Неэпический
|
|||||
| 13.09.2017, 13:13 | |||||
|
положил что-то в правый карман, вытащил потом из левого.
0
|
|||||
|
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
|
||
| 13.09.2017, 13:16 | ||
![]() Я думал, Вы это косвенно про "стек в куче" сказали)) Так уж и быть, сравнение с карманами вышло не очень.
0
|
||
|
"C with Classes"
|
|||
| 13.09.2017, 19:58 | |||
|
0
|
|||
| 13.09.2017, 19:58 | |
|
Перераспределение памяти с new под объекты
Выделение памяти под объекты классов Динамическое выделение памяти под объекты
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|