Free (функция языка Си)

Free (функция языка Си)

free (функция языка Си)

free (англ. освобождение) — функция стандартной библиотеки языка Си, предназначенная для освобождения ранее выделенной динамической памяти.

Содержание

Описание функции

#include <stdlib.h>
 
void free (void *ptr);

Назначение

Функция принимает указатель на область, подлежащую освобождению, или NULL. Возвращаемого значения не имеет. free() не проверяет указатель на правильность, и может «освободить» невыделенную область памяти, что в некоторых реализациях может привести к необратимому повреждению кучи (англ. heap). Вызов функции с NULL безопасен (проверка на NULL обязана выполняться внутри free() согласно стандарту). Для избежания повреждения кучи некоторые руководства по языку Си рекомендуют обнулять каждый освобождаемый указатель.

Область памяти, освобождённая после вызова free() может быть выделена снова, однако частый вызов malloc и free() может привести к фрагментации кучи и невозможности выделить области памяти большо́го объёма.

Функция объявлена в заголовочных файлах malloc.h, stdlib.h. Точное описание поведения функции приводится в стандарте ANSI C, на него же ссылается описание в стандарте POSIX.

Параметры функции

  • ptr — указатель на область памяти, предварительно выделенную malloc, calloc, realloc функциями либо NULL.

Пример использования

pointer = malloc(number_of_elements * sizeof(data));
 
/* … проверка успешности выделения памяти, использование блока памяти … */
 
free(pointer);
pointer = NULL;

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Free (функция языка Си)" в других словарях:

  • free (функция языка Си) — У этого термина существуют и другие значения, см. Free. free (англ. освобождение)  функция стандартной библиотеки языка Си, предназначенная для освобождения ранее выделенной динамической памяти. Содержание 1 Описание функции …   Википедия

  • free (функция) — У этого термина существуют и другие значения, см. Free. free (англ. освобождение)  функция стандартной библиотеки языка Си, предназначенная для освобождения ранее выделенной динамической памяти. Содержание 1 Описание функции 2 Назначение …   Википедия

  • Free — (свободный; также бесплатный или открытый для участия): Free  функция стандартной библиотеки языка Си, Free  английская группа, исполнявшая тяжёлый блюз рок, 1968 1973 годы. Free  альбом группы Free, 1969 год. Free  альбом… …   Википедия

  • Орфография английского языка — Орфография английского языка  совокупность правил, регламентирующих написание слов английского языка. Английский язык имеет более сложные правила правописания по сравнению с другими языками, что связано со сложной историей формирования… …   Википедия

  • i-Free — Стиль этой статьи неэнциклопедичен или нарушает нормы русского языка. Статью следует исправить согласно стилистическим правилам Википедии …   Википедия

  • strdup — strdup  нестандартная функция языка программирования Си, создающая копию указанной нуль терминированной строки в куче (используя malloc) и возвращающая указатель на неё. Чтобы освободить место, используемое созданной копией, необходимо… …   Википедия

  • Strdup — strdup  нестандартная функция языка программирования Си, создающая копию указанной нуль терминированной строки в куче (используя malloc) и возвращающая указатель на нее. Чтобы освободить место, используемое созданной копией, необходимо… …   Википедия

  • С++ — См. также: Си (язык программирования) C++ Семантика: мультипарадигмальный: объектно ориентированное, обобщённое, процедурное, метапрограммирование Тип исполнения: компилируемый Появился в: 1985 г. Автор(ы): Бьёрн Страуструп …   Википедия

  • C++ — У этого термина существуют и другие значения, см. C. См. также: Си (язык программирования) C++ Семантика: мультипарадигмальный: объектно ориентированное, обобщённое, процедурное, метапрограммирование Тип исполнения: компилируемый Появился в …   Википедия

  • Си (язык программирования) — У этого термина существуют и другие значения, см. Си. Запрос «Язык программирования Си» перенаправляется сюда; см. также другие значения. Си Класс языка: процедурный Тип исполнения: компилируемый Появился в: 1969 1973 Автор( …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»