С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Динамические указатели - 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

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

25.08.2013, 02:05. Просмотров 395. Ответов 4
Метки (Все метки)

Например вот код:



C++
1
int **ptr = new ptr*[5];
Правильно я понимаю что это массив ссылающийся на динамически выделенные указатели?

ведь если :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int **p = new int *[3];
 
    for(int i = 0; i < 3 ; i++)
    {
        p[i] = new int(i);
    }
 
       int *p1 = p[0],*p2 = p[1],*p3 = p[2];
 
       delete [] p;
 
 
       cout << *p1 << " " << *p2 << " "<< *p3  << endl; 
        cout << *p1 << " " << *p2 << " "<< *p3  << endl; 
            cout << *p1 << " " << *p2 << " "<< *p3  << endl; 
 
            delete p1,p2,p3;
Удаляется delete[] только Динамически выделенные указатели? (точней память подних).

Но что будет если я сделаю так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
int **ptr = new int*[3];
for(int i = 0; i < 3; i++)
{
     ptr[i] = new int(i);
}
 
for(int i = 0; i < 3; i++)
{
     delete ptr[i]; // Удаляем содержимое
}
 
ptr = ptr2;  //ptr2 какой то другой массив (указатель на двумерный массив и тд)
Тогда что будет с динамически выделенными указателями (памятью под них) если я не напишу delete [] ptr; ?

Ведь теперь ptr ссылается на начало другого массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.