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

Ссылка, Указатель, Область памяти выделенная оператором new для указателя - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
asiar
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 12
13.10.2010, 19:58     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #1
Подскажите пожалуйста, как сделать ссылку на область памяти выделенную оператором new для указателя

читая книгу Джесса Либерти в которой приводятся первые три строчки тела функции main, я решил написать вот такую программу но она не заработала, а я получил сообщения об ошибке
'rInt' : undeclared identifier





C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
int main()
{
    int * pInt=new int;
    if(pInt!=NULL)
    int & rInt=*pInt;
    
    *pInt=67;
    cout<<"*pInt="<<*pInt<<endl;
           cout<<"rInt :"<<rInt;
    
    return 0;
    
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
13.10.2010, 20:05     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #2
а так:
C++
1
int & rInt=pInt;
asiar
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 12
13.10.2010, 20:12  [ТС]     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #3
Цитата Сообщение от Crudelis Посмотреть сообщение
а так:
C++
1
int & rInt=pInt;
так даже объявить не получилось
может адрес адрес помещенный в указатель pInt вообще не int
ааа???

возник сразу еще один вопрос можно ли сделать ссылку на адрес, который хранится в указателе ???(хотя может в этом и необходимости не бывает )
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
13.10.2010, 20:52     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #4
Думаю тут описано понятнее
StUser
10 / 10 / 1
Регистрация: 09.10.2010
Сообщений: 23
13.10.2010, 21:22     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #5
asiar,
Ссылки и указатели тут ни при чем. Просто область видимости 'rInt' только в блоке if.


Правильней так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
int main()
{
    int * pInt=new int;
    if(pInt!=NULL)
    {
        int & rInt=*pInt;
    
        *pInt=67;
        std::cout<<"*pInt="<<*pInt<<std::endl;
           std::cout<<"rInt :"<<rInt;
    }
    return 0;
    
}
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,945
13.10.2010, 21:34     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #6
C++
1
 int & rInt;
- так вообще писать нельзя. Ссылка сама по себе - это уже указатель существующего объекта. Нельзя декларировать ссылку несуществующего объекта.
Yandex
Объявления
13.10.2010, 21:34     Ссылка, Указатель, Область памяти выделенная оператором new для указателя
Ответ Создать тему
Опции темы

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