C. Тема 1. Раздел 6
.pdfЧасть 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);
Спасибо за внимание!