free

Zwalnia lub zwalnia blok pamięci.

void free( 
   void *memblock 
);

Parametry

  • memblock
    Uprzednio przydzielonych bloku pamięci na zwolnione.

Uwagi

free Funkcji zwalnia blok pamięci (memblock) wcześniej było przydzielone przez wywołanie do calloc, malloc, lub realloc.Liczba bajtów zwalniane jest równa liczbie bajtów, gdy została przydzielona bloku (lub reallocated, w odniesieniu do realloc).Jeśli memblock jest NULL, wskaźnik jest ignorowany i free natychmiast zwraca.Próba zwolnienia nieprawidłowego wskaźnika (wskaźnik do bloku pamięci, która nie została przydzielona przez calloc, malloc, lub realloc) może wpływać na żądania kolejnych alokacji i powodują błędy.

W przypadku wystąpienia błędu w zwalniania pamięci, errno jest ustawiona z informacji z systemu operacyjnego na charakter awarii.Aby uzyskać więcej informacji, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr.

Po zwolnieniu blok pamięci, _heapmin minimalizuje ilość wolnej pamięci na stercie odbiorczego nieużywane regionów i dopuszczanie ich do systemu operacyjnego.Zwolnionej pamięci, która nie jest zwalniane do systemu operacyjnego zostanie przywrócona do wolnej puli i jest dostępna dla alokacji ponownie.

Gdy aplikacja jest połączony z debugowania wersją biblioteki uruchomieniowej C, free jest rozpoznawany jako _free_dbg.Aby uzyskać więcej informacji na temat jak sterty jest zarządzany w trakcie debugowania, zobacz The CRT debugowania sterty.

freejest oznaczony jako __declspec(noalias), co oznacza, że funkcja jest gwarantowane nie do modyfikacji zmiennych globalnych.Aby uzyskać więcej informacji, zobacz noalias.

Aby zwolnić pamięć przydzielona z _malloca, użyj _freea.

Wymagania

Funkcja

Wymaganego nagłówka

free

<stdlib.h> i <malloc.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

Zobacz przykład dla malloc.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Alokacja pamięci

_alloca

calloc

malloc

realloc

_free_dbg

_heapmin

_freea