C LanguageGestione della memoria


introduzione

Per la gestione della memoria allocata dinamicamente, la libreria C standard fornisce le funzioni malloc() , calloc() , realloc() e free() . In C99 e aligned_alloc() successive, c'è anche aligned_alloc() . Alcuni sistemi forniscono anche alloca() .

Sintassi

  • void * aligned_alloc (size_t alignment, size_t size); / * Solo dopo C11 * /
  • void * calloc (size_t nelements, size_t size);
  • void free (void * ptr);
  • void * malloc (size_t size);
  • void * realloc (void * ptr, size_t size);
  • void * alloca (size_t size); / * da alloca.h, non standard, non portatile, pericoloso. * /

Parametri

nome descrizione
dimensione ( malloc , realloc e aligned_alloc ) dimensione totale della memoria in byte. Per aligned_alloc la dimensione deve essere un multiplo integrale di allineamento.
dimensione ( calloc ) dimensione di ogni elemento
Nelements numero di elementi
PTR puntatore alla memoria allocata precedentemente restituita da malloc , calloc , realloc o aligned_alloc
allineamento allineamento della memoria allocata

Osservazioni

C11

Notare che aligned_alloc() è solo definito per C11 o successivo.

Sistemi come quelli basati su POSIX forniscono altri modi per allocare memoria allineata (ad es. posix_memalign() ) e hanno anche altre opzioni di gestione della memoria (ad esempio mmap() ).

Gestione della memoria Esempi correlati