Теоретическая часть
Лабораторная работа №10
Тема: Динамическое распределение памяти в языке С.
Цель работы: изучить функции динамического распределения памяти и их применение для числовых и символьных массивов, для хранения данных.
Теоретическая часть
Рассмотрим тип указатель. Указатели являются специальными объектами в программах на С. Они предназначены для хранения адресов памяти.
Рассмотрим пример (рис. 10.1). Когда компилятор обрабатывает оператор определения переменной, например, int a=10;, то в памяти выделяется участок памяти в соответствии с типом переменной и записывается в этот участок указанное значение (размер типа int не менее 2 байтов и зависит от реализации). Все обращения к переменной a компилятор заменит на адрес области памяти, в которой хранится эта переменная. Операция &a является операцией взятия адреса ее операнда.
Рисунок 10.1 Адресация в С
Программист может определить собственные переменные для хранения адресов областей памяти. Такие переменные называются указателями.
Указатель – именованный объект, предназначенный для хранения адреса области памяти (объекта, непоименованной области оперативной памяти либо точки входа в функцию).
Указатель не является самостоятельным типом, он всегда связан с каким-то другим типом. Указатели делятся на две категории:
- указатели на объекты;
- указатели на функции.
Эти категории указателей отличаются друг от друга свойствами и правилами манипулирования. Каждый указатель имеет соответствующий тип.