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(*pointer));
 
/* … проверка успешности выделения памяти, использование блока памяти … */
 
free(pointer);
pointer = NULL;

См. также

Ссылки


Wikimedia Foundation. 2010.

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

Полезное


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

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

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

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

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

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

  • Виртуальная функция — Виртуальный метод (виртуальная функция) в объектно ориентированном программировании метод (функция) класса, который может быть переопределён в классах наследниках так, что конкретная реализация метода для вызова будет определяться во время… …   Википедия

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

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

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

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


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

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