Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C. Тема 1. Раздел 6

.pdf
Скачиваний:
16
Добавлен:
21.03.2016
Размер:
677.87 Кб
Скачать

Часть 4

Инкрементация/декрементация

Увеличивают/уменьшают значение на размер типа данных указателя в байтах

Остальные арифметические операции

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

Сравнение

Можно сравнивать указатели между собой, имеет смысл сравнивать их на равенство или неравенство

Можно сравнивать с NULL

Выделение памяти под переменную

Использование переменной

Уничтожение переменной (освобождение памяти)

Переменные статической памяти располагаются в стеке

Переменные инициализируются при начале выполнения функции

При завершении выполнения функции переменные автоматически удаляются из стека

Преимущества

Простое управление памятью

Высокая скорость

Нет проблем с утечкой памяти

Недостатки

Можно хранить только небольшие объёмы данных

После завершения работы функции данные удаляются из стека

Переменные динамической памяти располагаются в куче

Для создания переменной в куче используется функция calloc

Для удаления переменной из кучи используется функция free

Преимущества

Можно хранить большие объёмы данных

Можно сохранять информацию между вызовами функций

Недостатки

Управление памятью осуществляется вручную

Возможны утечки памяти

//Объявление указателя pa int * pi;

//Создание массива из 100

//элементов типа int

pi = (int *)calloc(100, sizeof(int));

//Работа с массивом pi[0] = 10;

pi[1] = 20;

pi[3] = pi[0] + pi[1];

//Удаление массива free(pi);

Спасибо за внимание!