Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
 Аватар для no_wearines
56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347

В какой области памяти лежат объекты?

11.09.2017, 22:03. Показов 7110. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрст.

C++
1
2
3
4
5
6
7
8
struct H
{
    int a;
};
int main()
{
    H *p = new H;
}
объект по адресу p лежит в куче.
Вопрос: а где лежит объект-член 'a'? (в куче или в стеке)
и с помощью какого средства можно это проверить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.09.2017, 22:03
Ответы с готовыми решениями:

В какой области памяти хранится указатель (сама переменная, которая хранит адрес)?
Привет! В общем у меня возник небольшой вопрос :) Если мы объявляем указатель, выделяем ему память, то память выделяется в куче, а адрес...

Вопрпос про const: в какой области памяти они находятся, и где это объявлять ?
Приветствую. У меня вот такая задача - завести массив констант, причём он используется ТОЛЬКО одной функцией (не main), и поэтому,...

Считается ли хорошим тоном создавать объекты классов в области глобальных переменных
Считается ли хорошим тоном создавать объекты классов в области глобальных переменных? class FX { ........ ......... };

61
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
13.09.2017, 23:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Это как? Искусственный стек? Это известный прием? Для чего такое может понадобиться?
( Если долго писать, то дайте направление, где искать )
Например, в OpenGL есть функции glPushMatrix / glPopMatrix служащие именно для этого - положить текущую матрицу преобразования координат на стек или снять оттуда. Поскольку они не конфликтуют с обычным стеком, можно предположить специфичную реализацию.
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
14.09.2017, 05:38
есть стек- область памяти
есть стек- организация данных(наравне с очередью)
Мы сейчас про какой?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.09.2017, 06:18
ValeryS, я про тот который в SS.
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
14.09.2017, 06:41
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Например, в OpenGL есть функции glPushMatrix / glPopMatrix служащие именно для этого - положить текущую матрицу преобразования координат на стек или снять оттуда. Поскольку они не конфликтуют с обычным стеком, можно предположить специфичную реализацию.
Вы говорите про абстрактный тип данных. К организации памяти это не имеет отношения
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
14.09.2017, 09:08
Что значит абстрактным? Матрица это массив 4х4 из float или double. Они как-то организованы внутри библиотеки в стек. Полностью программный и расположенный в куче.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
14.09.2017, 09:21
Цитата Сообщение от no_wearines Посмотреть сообщение
Вопрос: а где лежит объект-член 'a'? (в куче или в стеке)
ответ в стеке, вот вам видео что бы разобраться
https://www.youtube.com/watch?v=S3_RqYSQa-s
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
14.09.2017, 09:23
Antikl, да ладно?
Раз на стеке, то, видимо,
не помогло это видео разобраться.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
14.09.2017, 09:31
Цитата Сообщение от Croessmah Посмотреть сообщение
Antikl, да ладно?
Раз на стеке, то, видимо,
не помогло это видео разобраться
почему?
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
14.09.2017, 09:36
Antikl, а с чего оно на стеке окажется?
Конечно, компилятор может многое,
вплоть до полного удаления этого кода,
но вопрос "оптимизаций" не касается.
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
14.09.2017, 10:47
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Что значит абстрактным? Матрица это массив 4х4 из float или double. Они как-то организованы внутри библиотеки в стек. Полностью программный и расположенный в куче.
https://ru.m.wikipedia.org/wik... 1%8B%D1%85

Вы путаете тип данных стек с сегментом памяти стек
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
14.09.2017, 11:06
Цитата Сообщение от Croessmah Посмотреть сообщение
Antikl, а с чего оно на стеке окажется?
тоисть
C++
1
H *p = new H;
что так
C++
1
H p;
она все равно будет на куче? Или подтолкните в недопонимании.
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
14.09.2017, 11:25
Antikl, у ТС первый вариант. У него в куче.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
14.09.2017, 12:13
Цитата Сообщение от Antikl Посмотреть сообщение
она все равно будет на куче?
нет конечно)


отгадайте загадку:

есть пароход.
пароход стоит в порту.
на пароход взошли люди.

пароход ушел в море.

где теперь находятся его пассажиры?
на пароходе в море,
или по прежнему на берегу?
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
14.09.2017, 12:20
Цитата Сообщение от hoggy Посмотреть сообщение
где теперь находятся его пассажиры?
я знаю ответ море находиться в параходе, а параход в людях.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
14.09.2017, 12:26
Цитата Сообщение от Antikl Посмотреть сообщение
море находиться в параходе, а параход в людях.
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
14.09.2017, 13:25
Цитата Сообщение от oldnewyear Посмотреть сообщение
Вы путаете тип данных стек с сегментом памяти стек
В программировании абстрактные типы данных обычно представляются в виде интерфейсов, которые скрывают соответствующие реализации типов. Программисты работают с абстрактными типами данных исключительно через их интерфейсы, поскольку реализация может в будущем измениться.
Матрица преобразования координат в трехмерном пространстве это всегда 4х4 дробных числа. В современных версиях OpenGL, как я слышал, программиста заставляют самого их считать. Так что об абстрактном типе не может быть речи.
Но главный вопрос в другом - чем этот пример не подходит под "программный стек в куче"?
0
14.09.2017, 14:21

Не по теме:

COKPOWEHEU,
АТД - это такой термин. Из теории алгоритмов.
Жаль, что темы на форуме нельзя закрывать. Все что нужно, ТС уже разжевали, дальше пошла уже околотемная садомия. Ваш пример вообще к теме отношения не имеет.

0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
14.09.2017, 15:19
Мой пример иллюстрирует ответ на вопрос ТСа о стеке на куче.
А вот к чему были комментарии про абстрактный тип данных - непонятно
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
14.09.2017, 15:30
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Мой пример иллюстрирует ответ на вопрос ТСа о стеке на куче.
А вот к чему были комментарии про абстрактный тип данных - непонятно
Стек (англ. stack — стопка; читается стэк) — абстрактный тип данных
https://ru.wikipedia.org/wiki/... 0%B5%D0%BA
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
14.09.2017, 15:54
Хорошо. А к заданной теме это как относится? Мы же рассматриваем не абстрактные стек и кучу, а вполне конкретные, с данными конкретного типа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2017, 15:54

Перераспределение памяти с new под объекты
есть класс #include <iostream> #include <string> using namespace std; class tel_book { private: char *FIO; int count...

Объекты классов в динамической памяти
Я создаю объект класса в динамической памяти ( например map *obj = new map; ) Вопрос: как сделать трехмерый(или хотя бы двумерный) массив...

Выделение памяти под объекты классов
Здравствуйте, начал недавно осваивать классы и вот у меня в голове все крутится один вопрос. Каким образом происходит выделение памяти...

Динамическое выделение памяти под объекты
Создать класс с именем TRAIN, содержащий следующие закрытые поля: • название пункта назначения; • номер поезда; Написать...

Создать указатели и ссылки на объекты в памяти
Помогите, кто может Создайте в свободной памяти три объекта различных типов (Cat, Worker, Pencil…). Замените указатели ссылками и...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru