Управление памятью
Функция calloc служит для запросов памяти. В резуль-тате обращения -62- calloc (n, sizeof (objеct)) возвращается либо указатель пространства, достаточного дляразмещения n объектов указанного размера, либо NULL, еслизапрос не может быть удовлетворен. Отводимая память инициа-лизируется нулевыми значениями. Функция malloc делает то жесамое, но память задается в байтах: malloc (size) Указатель обладает нужным для рассматриваемых объектоввыравниванием, но ему следует приписывать соответствующийтип, как в следующем примере char *calloc (); int *ip; ip =(int *) calloc (n, sizeof (int)); Функция free (p) освобождает пространство, на котороеуказывает p, причем указатель p первоначально должен бытьполучен в результате обращения к calloc. Здесь нет никакихограничений на порядок освобождения пространства, но осво-бождение чего либо, не полученного с помощью calloc или mal-loc, приводит к тяжелым ошибкам.Стандартные функции языка Си
|
|
* 14. ВЗАИМОДЕЙСТВИЕ С ОПЕРАЦИОННОЙ СИСТЕМОЙ
-63-