Memori Gratis di C dengan Fungsi Gratis

Free Memory C With Free Function



Bahasa C cukup efisien untuk menangani manajemen memorinya. Ini berarti bahwa setiap kali Anda mendeklarasikan variabel reguler dari tipe data apa pun dalam C, bahasa pemrograman itu sendiri bertanggung jawab untuk membatalkan alokasi atau melepaskan memori ini setelah program Anda berhasil dijalankan. Namun, dalam hal alokasi memori dinamis, karena Anda mengalokasikan memori secara manual, itu sebabnya Anda juga harus melepaskannya sendiri.

Di perpustakaan stdlib.h, ada fungsi khusus untuk melayani tujuan ini, yaitu fungsi free(). Hari ini, kita akan mengeksplorasi kebutuhan untuk menggunakan fungsi ini dalam bahasa pemrograman C. Setelah itu, kita akan melihat beberapa contoh di mana fungsi ini telah digunakan untuk mengosongkan memori secara manual dalam bahasa pemrograman C di Linux.







Perlu menggunakan Fungsi Gratis di C untuk Membebaskan Memori Sistem:

Kita semua tahu bahwa sistem komputer kita memiliki memori yang terbatas, karena itu kita tidak pernah dapat menjalankan program tanpa batas di dalamnya. Dalam hal alokasi memori otomatis, komputer akan membebaskan memori ketika program Anda telah selesai dieksekusi. Namun, ketika kita mengalokasikan memori secara manual dari heap, kita harus membebaskannya dari satu atau lain cara.



Jika tidak, kami akhirnya akan kehabisan memori, dan kami tidak akan menjalankan program kami lebih jauh. Di sinilah fungsi free() dari library stdlib.h berperan. Kami menggunakan fungsi ini di akhir program tepat sebelum pernyataan pengembalian sehingga memori tumpukan harus dikembalikan ke sistem komputer sebelum penghentian program Anda.



Misalkan Anda akan terus mengabaikan fungsi ini saat menulis kode C Anda yang secara khusus ditargetkan untuk alokasi memori dinamis. Dalam hal ini, sebuah titik akan datang ketika Anda tidak dapat mengakses heap Anda lebih jauh karena kehabisan memori. Itulah sebabnya fungsi yang tampaknya kurang berharga ini tidak boleh dilupakan setiap kali Anda bertanggung jawab atas alokasi memori secara dinamis.





Sintaks umum fungsi free() dalam bahasa pemrograman C adalah sebagai berikut:

ruang kosongGratis (ruang kosong*ptr)

Di sini, kata kunci void sebelum fungsi free() menyatakan bahwa tipe kembalian dari fungsi ini adalah batal. Pointer di dalam tanda kurung sesuai dengan lokasi memori yang perlu dialokasikan. Bagian berikut akan menjelaskan beberapa contoh di mana fungsi free() telah digunakan untuk melepaskan memori dinamis yang diperoleh dalam C.



Contoh Penggunaan Fungsi Gratis di C:

Fungsi free() dapat digunakan dengan ketiga fungsi alokasi memori dari library stdlib.h, yaitu malloc, calloc, dan realloc. Ini adalah wajib untuk menggunakan fungsi ini setelah menyatakan fungsionalitas dasar program Anda sehingga Anda dapat menyerahkan memori tumpukan yang telah Anda alokasikan secara dinamis selama eksekusi program kembali ke sistem komputer Anda. Sekarang, mari kita lihat beberapa contoh di mana fungsi free() telah digunakan dengan fungsi malloc dan calloc dalam bahasa pemrograman C.

Contoh #1: Menggunakan Fungsi Gratis dengan calloc di C:

Kode C untuk menggunakan fungsi free() dengan fungsi calloc() telah dibagikan pada gambar di bawah ini:

Tujuan dasar dari kode ini adalah untuk menetapkan beberapa memori secara dinamis dengan bantuan fungsi calloc(). Untuk itu, kami telah mengambil ukuran memori dinamis dan nilai memori dinamis ini sebagai input dari pengguna. Kemudian, kami bermaksud untuk mencetak nilai yang diperoleh di terminal. Setelah seluruh kode ini, kami memiliki fungsi free() kami yang akan melepaskan memori dinamis yang dialokasikan karena eksekusi program C kami.

Versi yang sedikit dimodifikasi dari kode yang sama juga ditunjukkan pada gambar yang dikutip di bawah ini:

Versi modifikasi ini hanya dimaksudkan untuk mencetak nilai memori yang dialokasikan secara dinamis sebelum inisialisasi manual. Kita tahu bahwa fungsi calloc() menginisialisasi seluruh memori dengan nol sebelum aktualisasi terjadi. Namun, poin utama yang perlu diperhatikan di sini dalam kode ini adalah bahwa meskipun kode ini cukup ringkas dan sederhana, kami masih menggunakan fungsi free() setelah fungsi yang diinginkan tercapai hanya untuk melepaskan memori heap yang kami miliki diperoleh sebagai hasil dari menjalankan program C ini.

Contoh #2: Menggunakan Fungsi Gratis dengan malloc di C:

Kode C untuk menggunakan fungsi free() dengan fungsi malloc() telah dibagikan pada gambar yang ditambahkan di bawah ini:

Tujuan dasar dari kode ini adalah untuk menetapkan beberapa memori secara dinamis dengan bantuan fungsi malloc(). Untuk itu, kami telah menetapkan nilai memori dinamis ini dalam for loop. Kemudian, kami bermaksud untuk mencetak nilai yang diperoleh pada terminal dengan bantuan loop for lainnya. Setelah seluruh kode ini, kami memiliki fungsi free() kami tepat sebelum pernyataan pengembalian yang hanya akan melepaskan memori dinamis yang dialokasikan sebagai hasil dari eksekusi program C kami.

Kesimpulan:

Artikel ini menekankan pentingnya menggunakan fungsi free() dalam bahasa pemrograman C di Linux. Sebagian besar pengguna percaya bahwa fungsi alokasi file stdlib.h lebih penting; namun, dengan membaca artikel ini, Anda dapat melihat dengan jelas bahwa fungsi free() sama pentingnya. Ini akan membantu Anda melepaskan memori yang diperoleh secara dinamis dan memastikan bahwa Anda tidak pernah kehabisan memori setiap kali Anda mencoba menjalankan program Anda di masa mendatang.