Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Освоение функции free() в C: практическое руководство и пример

Что такое функция free() в C?

free(), входящая в стандартную библиотеку C, освобождает память, ранее выделенную через malloc(), calloc() или realloc(). Возвращая блок в кучу, она контролирует потребление памяти программой и предотвращает её истощение.

В отличие от стековых переменных, динамически выделенную память нужно освобождать явно. Пропуск free() приводит к утечкам памяти и в итоге к ошибке out-of-memory.

Синтаксис

void free(void *ptr);

ptr — указатель на блок для освобождения. Передача NULL безопасна и не производит никаких действий.

Практический пример

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    // Выделение места для 10 целых
    int *ptr = malloc(10 * sizeof(*ptr));
    if (ptr == NULL) {
        fprintf(stderr, "Memory allocation failed\n");
        return 1;
    }
    // Запись и вывод значения
    ptr[2] = 50;
    printf("Value of the 3rd integer is %d\n", ptr[2]);
    // Освобождение памяти
    free(ptr);
    return 0;
}

Вывод:

Value of the 3rd integer is 50

Лучшие практики

Язык C

  1. Использование нечистых функций в VHDL: повышение читаемости и поддерживаемости FSM
  2. Освоение функций VHDL: практическое руководство по эффективному дизайну
  3. std::vector в C++: динамические массивы, итераторы и практические примеры
  4. std::map в C++: полное руководство с примерами кода
  5. calloc() в C: выделение обнулённой памяти и практический пример
  6. Использование realloc() в C: синтаксис, лучшие практики и пример
  7. Метод String.length() в Java: как получить длину строки (пример)
  8. Освоение String.compareTo() в Java: синтаксис, сценарии использования и примеры
  9. Чтение файлов в Java с BufferedReader — Практическое руководство с примерами
  10. Мастерство метода strip() в Python: подробное руководство и практические примеры