Бесплатный язык программирования C для начинающих
В языке программирования C оператор free предназначен для освобождения участка памяти, выделенного ранее оператором malloc, calloc или realloc.
Пример использования оператора malloc для выделения памяти:
c
int* arr = (int*) malloc(10 * sizeof(int));
В этом примере мы выделили участок памяти под массив из 10 целых чисел. Для освобождения выделенной ранее памяти используется оператор free:
c
free(arr);
Теперь память, выделенная для массива arr, свободна для использования другими частями программы.
Пример использования оператора calloc для выделения памяти:
c
int* arr = (int*) calloc(10, sizeof(int));
С помощью оператора calloc мы выделили память для массива из 10 целых чисел, но в отличие от оператора malloc, calloc также обнуляет выделенную память. Для освобождения памяти, выделенной с помощью calloc, также используется оператор free, как и для памяти, выделенной с помощью malloc.
Пример использования оператора realloc для изменения размера выделенной памяти:
c
int* arr = (int*) malloc(10 * sizeof(int));
// Изменяем размер массива с 10 до 20 элементов
int* arr_new = (int*) realloc(arr, 20 * sizeof(int));
В этом примере мы выделили участок памяти под массив из 10 целых чисел, а затем с помощью оператора realloc увеличили размер выделенной памяти до 20 элементов. При этом ранее выделенная память будет сохранена, если это возможно. Если же новая память выделена в другом месте, то данные из старой памяти будут скопированы в новую, а старая память будет освобождена.
Важно помнить, что после вызова оператора free память, ранее выделенная под соответствующий участок, может быть переиспользована другими частями программы. Поэтому после вызова оператора free необходимо больше не обращаться к этой памяти, иначе это может привести к непредсказуемым результатам.