Указатели
Указатель — это переменная, хранящая адрес ячейки памяти. Адрес записывается в виде целого числа, представляющего смещение от начала области памяти.
Тип указателя
Тип указателя задаётся через оператор *, например: ``cpp int *ptr; ` Здесь ptr является указателем на целое число (int`).
Операции с указателями
Доступ по адресу:
$*ptr$Получение адреса переменной:
$&var$Сравнение указателей:
$==$, !=, <, >, <=, >=$Увеличение/уменьшение указателя:
$++ptr$, $--ptr$
Динамическая память
Динамически выделяется память во время выполнения программы с помощью функций:
$malloc()$: выделяет блок памяти заданного размера$calloc()$: выделяет блок памяти и инициализирует его нулями$realloc()$: изменяет размер ранее выделенного блока памяти$free()$: освобождает выделенную память
Пример выделения памяти под массив
``cpp int *arr = (int *) malloc(10 * sizeof(int)); ``
Указатели и массивы
Массивы хранятся последовательно в памяти, поэтому доступ к элементам массива можно получить через указатель: ``cpp int arr[] = {1, 2, 3}; int *ptr = &arr[0]; ``
Указатели и функции
Функции могут принимать указатели как аргументы и возвращать их: ``cpp void func(int *ptr) { *ptr = 10; } ``
Проверка корректности работы с памятью
При работе с указателями важно проверять корректность выделенной памяти: ``cpp if(ptr == NULL) { // Ошибка выделения памяти } ``