Главная > Программирование > c++ > C++. Урок 12. Работа с указателями. Динамическое выделение памяти

C++. Урок 12. Работа с указателями. Динамическое выделение памяти

28.01.2010. c++, Программирование

0

Object moved to here.

Кроме переменных в с++ существуют указатели, которые вместо того, чтобы "хранить" их, содержат адрес этих данных в памяти. То есть, например, у нас есть куча шариков. Где-то есть шарик с номером 5. Ну так вот, указатель - это такая переменная, которая указывает на "позицию" этого шарика, на его местоположения.

Создание указателя:

тип *имя;

Пример:

int *p;  // указатель на переменную типа int или первый элемент массива типа int

char *pc; // указатель на переменную или массив типа char

Теперь надо заставить указатель на что-то указывать. Для этого мы можем использовать оператор & - функция взятия адреса переменной

int *p;

int a=10;

p=&a;

//теперь p указывает на переменную a.

Для записи чего-либо в память, на которую указывает указатель надо использовать оператор *, который обозначает, что мы работаем с данными, находящимися по такому-то адресу

*p=20; //теперь a==20

Также мы можем динамически выделять память под данные во время работы программы. а не во время ее разработки. Например, нам вводят число символов в строке и затем строку. С помощью указателей и выделения памяти мы можем создать массив необходимого размера во время работы программы.

Для выделения памяти служит функция new:

char *c=new char(количество символов);

Вот мы создали массив типа char.Работа с ним ничем не отличается от работы с обычным массивом.

Внимание, после того, как вы поработали с массивом и вам он больше не нужно, необходимо отчистить память:

delete [] имя указателя на память, которую нужно отчистить.

Может будет интересно:

Если вам нужен выделенный сервер, то рекомендую вот этот сервер в Германии


Метки:

Rambler's Top100 Блогун - монетизируем блоги