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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
#1

Выделяется ли память для ссылки? - C++

27.01.2013, 22:59. Просмотров 623. Ответов 6
Метки нет (Все метки)

Добрый день есть код:
C++
1
2
3
char a = 'd';
char *ptr = &a;
char &link = a;
Вопрос в том, что такое link? Отдельный объект или просто ссылка? И если объект, то сколко памяти для него выделяется. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2013, 22:59     Выделяется ли память для ссылки?
Посмотрите здесь:

C++ Динамическая память, указатели и ссылки
Как выделяется память под массив string? C++
Не выделяется память C++
Не выделяется память. выдаёт ошибку на строке st[m].fam = new char[]; C++
Какую структуру имеет память которая выделяется для роботы программы на С++ C++
C++ Если память для объекта выделяется динамически (строка 33), сортировка sort не работает
C++ Выделяется ли память?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
27.01.2013, 23:01     Выделяется ли память для ссылки? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вообще, это ссылка, т.е. памяти под нее будет выделяться столько же, сколько и под указатель.
Однако оптимизирующий компилятор выкинет эту ссылку из кода, поэтому лишняя память тратится не будет вообще.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
27.01.2013, 23:28     Выделяется ли память для ссылки? #3
ссылка есть синтаксическая обертка над указателем, так что все как diagon сказал
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1240 / 989 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
27.01.2013, 23:49     Выделяется ли память для ссылки? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
8.3.2/4, память под ссылку выделяется исключительно на усмотрение компилятора.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
28.01.2013, 00:00     Выделяется ли память для ссылки? #5
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
8.3.2/4, память под ссылку выделяется исключительно на усмотрение компилятора.
так же как память может быть не выделена под переменную, так что без разницы
в стандарте за счет сферической модели памяти вообще все очень сферически описывается
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12498 / 7060 / 792
Регистрация: 27.09.2012
Сообщений: 17,441
Записей в блоге: 2
Завершенные тесты: 1
28.01.2013, 00:50     Выделяется ли память для ссылки? #6
В дебаге под ссылку выделяется память. В релизе же если есть возможность выкинуть из кода ссылку, то скорее всего компилятор это сделает. Но все это опять же зависит от компилятора.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2013, 02:56     Выделяется ли память для ссылки?
Еще ссылки по теме:

C++ Как выделяется память на стеке и на куче? Когда нужна ручная очистка?
Не выделяется память в динамической памяти C++
Объясните как выделяется память под умные указатели C++
C++ Каким образом выделяется память при инициализации строковой константой указателя
C++ Неправильно выделяется память для массива

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

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.01.2013, 02:56  [ТС]     Выделяется ли память для ссылки? #7
Цитата Сообщение от Croessmah Посмотреть сообщение
В дебаге под ссылку выделяется память. В релизе же если есть возможность выкинуть из кода ссылку, то скорее всего компилятор это сделает. Но все это опять же зависит от компилятора.
Да я уже провел на gcc. Если с ключом -O0 то есть память под ссылку, а с -O2 уже нет.
Yandex
Объявления
28.01.2013, 02:56     Выделяется ли память для ссылки?
Ответ Создать тему
Опции темы

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