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 i _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.