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

Динамические указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скопировать один элемент в другой в рамках такого массива http://www.cyberforum.ru/cpp-beginners/thread943242.html
скажите, плиз, кто-нибудь, как перекочевать, то бишь, скопировать один элемент в другой в рамках такого массива? char *name;
C++ Сортировка по алфвавиту Всем, привет! Вот, выполняю задание на сортировку. Не пойму в чем дело! Сортирует крайне криво или по какому-то неизвестному мне порядку. Пишу на Dev C++ последней вресии. PS. Преобразование... http://www.cyberforum.ru/cpp-beginners/thread943229.html
C++ Только константное статическое поле НЕ МОЖЕТ быть поле членом класса !
class CCoords { static const float rate = 1.0f; // ОШИБКА !!! bool IsComputed; float x,y; POINT2D mouse_down,mouse_pressed; D3DXMATRIX world; D3DXVECTOR3...
C++ QVector::reserve() + std::vector::reserve() и добавление в начало
Если зарезервировать в новосозданном векторе место, а затем добавлять объекты классов в начало - будет ли эффективнее вставка? Или предварительная резервация эффективна только для push_back() ? ...
C++ Перегрузка << в шаблоне http://www.cyberforum.ru/cpp-beginners/thread943196.html
Ругается когда перегружаю template < class T > ostream &operator<<(ostream &out, const ArrayList<T> &d); Ошибки VS2010: Ошибка 8 error C2676: бинарный "++": "std::ostream" не определяет этот...
C++ Примитивная игра на c++ Учу С++ потихоньку, дошёл до структур даннах, классов. Писал пока что консольные приложения. Возникла идея написать простенькую 2d игру, например, змейку/крестики-нолики/тетрис. Подкажите в какую... подробнее

Показать сообщение отдельно
MbICJIuTeJIb_u3
KeM6Pug}I{a
49 / 49 / 2
Регистрация: 23.08.2013
Сообщений: 202
25.08.2013, 02:56  [ТС]
Цитата Сообщение от Vourhey Посмотреть сообщение
Ничего не будет. Будут дальше в памяти висеть до конца работы приложения.
Интресно , а вот как скопировать адрес не на переменную на который указывает ,а на сам указатель в памяти?

Правильно ли я рассуждаю :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const int size = 3;
    int **d = new int *[size];
    for(int i = 0; i < size; i++)
    {
        d[i] = new int(i);
    }
 
 
    int **ptr = new int *[size];
    for(int i = 0; i < size; i++)
    {
        ptr[i] = d[i];
    }
 
    for(int i = 0; i < size; i++)
    {
        cout << (*(ptr + i)) << " :: " << (*(d + i)) << endl; //Это ссылается на адрес переменной?
        cout << ((ptr + i)) << " :: " << ((d + i)) << endl;   // Это адрес указателя в памяти?
        cout << &(*(ptr + i)) << " :: " << &(*(d + i)) << endl;  // И это адрес указателя в  памяти??? Но почему?
        cout << "-----------------------------------------------" << endl;
    }
 
    for(int i = 0; i < size; i++)
    {
        delete ptr[i];
    }
 
    
    delete [] ptr;
    delete [] d;
Добавлено через 2 минуты
Ведь когда мы применяем операцию разыменования (*) то должны получить доступ к данным на , которые указывает указатель.
Но тут
cout << &(*(ptr + i)) << " :: " << &(*(d + i)) << endl;
мы берем адрес у объекта на который ссылается указатель , а не у указателя.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru