C LanguageGestión de la memoria


Introducción

Para administrar la memoria asignada dinámicamente, la biblioteca C estándar proporciona las funciones malloc() , calloc() , realloc() y free() . En C99 y posteriores, también hay aligned_alloc() . Algunos sistemas también proporcionan alloca() .

Sintaxis

  • void * align_alloc (alineación size_t, size_t size); / * Solo desde C11 * /
  • void * calloc (size_t nelements, size_t size);
  • vacío libre (void * ptr);
  • void * malloc (size_t size);
  • void * realloc (void * ptr, size_t size);
  • void * alloca (size_t size); / * de alloca.h, no estándar, no portátil, peligroso. * /

Parámetros

nombre descripción
tamaño ( malloc , realloc y aligned_alloc ) Tamaño total de la memoria en bytes. Para aligned_alloc el tamaño debe ser un múltiplo integral de alineación.
tamaño ( calloc ) tamaño de cada elemento
nelementos número de elementos
ptr puntero a la memoria asignada previamente devuelto por malloc , calloc , realloc o aligned_alloc
alineación alineación de la memoria asignada

Observaciones

C11

Tenga en cuenta que aligned_alloc() solo se define para C11 o posterior.

Los sistemas como los basados ​​en POSIX proporcionan otras formas de asignar memoria alineada (por ejemplo, posix_memalign() ), y también tienen otras opciones de administración de memoria (por ejemplo, mmap() ).

Gestión de la memoria Ejemplos relacionados