Udostępnij za pośrednictwem


_freea

Zwalnia lub zwalnia blok pamięci.

void _freea( 
   void *memblock 
);

Parametry

  • memblock
    Uprzednio przydzielonych bloku pamięci na zwolnione.

Wartość zwracana

Brak.

Uwagi

_freea Funkcji zwalnia blok pamięci (memblock) wcześniej było przydzielone przez wywołanie do _malloca._freeasprawdza, jeśli pamięć została przydzielona na stercie lub stosu.Jeśli została przydzielona na stosie, _freea nic nie robi.Jeżeli został przydzielony na stercie, liczba bajtów zwalniane jest równa liczbie bajtów, gdy została przydzielona bloku.Jeśli memblock jest NULL, wskaźnik jest ignorowany i _freea natychmiast zwraca.Próba zwolnienia nieprawidłowego wskaźnika (wskaźnik do bloku pamięci, która nie została przydzielona przez _malloca) może wpływać na żądania kolejnych alokacji i spowodować błędy.

_freea wywołania free wewnętrznie, jeśli stwierdzi, że pamięć jest przydzielona na stercie.Czy jest pamięć na stercie lub stosu jest określona przez znacznik umieszczane w pamięci pod adresem bezpośrednio poprzedzającym alokacji pamięci.

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.

Wywołanie _freea musi towarzyszyć wszystkie wywołania _malloca.Jest również wywołać błąd _freea dwa razy na tej samej pamięci.Gdy aplikacja jest połączony z debugowania wersją biblioteki uruchomieniowej C, szczególnie z _malloc_dbg Funkcje włączane przez definiowanie _CRTDBG_MAP_ALLOC, ułatwia znajdowanie brakujące lub zduplikowane wywołania _freea.Aby uzyskać więcej informacji na temat jak sterty jest zarządzany w trakcie debugowania, zobacz The CRT debugowania sterty.

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

Wymagania

Funkcja

Wymaganego nagłówka

_freea

<stdlib.h> i <malloc.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Przykład

Zobacz przykład dla _malloca.

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

_malloca

calloc

malloc

_malloc_dbg

realloc

_free_dbg

_heapmin