Теоретическая часть

Лабораторная работа №10

Тема: Динамическое распределение памяти в языке С.

Цель работы: изучить функции динамического распределения памяти и их применение для числовых и символьных массивов, для хранения данных.

Теоретическая часть

Рассмотрим тип указатель. Указатели являются специальными объектами в программах на С. Они предназначены для хранения адресов памяти.

Рассмотрим пример (рис. 10.1). Когда компилятор обрабатывает оператор определения переменной, например, int a=10;, то в памяти выделяется участок памяти в соответствии с типом переменной и записывается в этот участок указанное значение (размер типа int не менее 2 байтов и зависит от реализации). Все обращения к переменной a компилятор заменит на адрес области памяти, в которой хранится эта переменная. Операция &a является операцией взятия адреса ее операнда.

Рисунок 10.1 Адресация в С

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

Указатель – именованный объект, предназначенный для хранения адреса области памяти (объекта, непоименованной области оперативной памяти либо точки входа в функцию).

Указатель не является самостоятельным типом, он всегда связан с каким-то другим типом. Указатели делятся на две категории:

  • указатели на объекты;
  • указатели на функции.

Эти категории указателей отличаются друг от друга свойствами и правилами манипулирования. Каждый указатель имеет соответствующий тип.