free

Membatalkan alokasi atau membebaskan blok memori.

Sintaks

void free(
   void *memblock
);

Parameter

memblock
Blok memori yang dialokasikan sebelumnya untuk dibebaskan.

Keterangan

Fungsi membatalkan free alokasi blok memori (memblock) yang sebelumnya dialokasikan oleh panggilan ke calloc, , mallocatau realloc. Jumlah byte yang dibebankan setara dengan jumlah byte yang diminta ketika blok dialokasikan (atau direalokasikan, untuk realloc). Jika memblock adalah NULL, penunjuk diabaikan, dan free segera kembali. Mencoba membebaskan pointer yang tidak valid (pointer ke blok memori yang tidak dialokasikan oleh calloc, , mallocatau realloc) dapat memengaruhi permintaan alokasi berikutnya dan menyebabkan kesalahan.

Jika terjadi kesalahan dalam membebaskan memori, errno diatur dengan informasi dari sistem operasi pada sifat kegagalan. Untuk informasi selengkapnya, lihat errno, _doserrno, _sys_errlist, dan _sys_nerr.

Setelah blok memori dibebaskan, _heapmin meminimalkan jumlah memori bebas pada tumpukan dengan menyatukan wilayah yang tidak digunakan dan melepaskannya kembali ke sistem operasi. Memori yang dibebaskan yang tidak dirilis ke sistem operasi dipulihkan ke kumpulan gratis dan tersedia untuk alokasi lagi.

Ketika aplikasi ditautkan dengan versi debug pustaka run-time C, free diselesaikan ke _free_dbg. Untuk informasi selengkapnya tentang bagaimana tumpukan dikelola selama proses debugging, lihat Tumpukan debug CRT.

free ditandai __declspec(noalias), yang berarti bahwa fungsi dijamin tidak memodifikasi variabel global. Untuk informasi selengkapnya, lihat noalias .

Untuk membebaskan memori yang dialokasikan dengan _malloca, gunakan _freea.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Function Header yang diperlukan
free <stdlib.h> dan <malloc.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

Lihat contoh untuk malloc.

Baca juga

Alokasi memori
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea