Memori Percuma dalam C dengan Fungsi Percuma

Free Memory C With Free Function



Bahasa C cukup cekap untuk menangani pengurusan ingatannya. Ini bermaksud bahawa setiap kali anda menyatakan pemboleh ubah biasa dari jenis data apa pun dalam C, bahasa pengaturcaraan itu sendiri bertanggungjawab untuk menyahpindah atau melepaskan memori ini setelah program anda berjaya dijalankan. Walau bagaimanapun, dalam hal peruntukan memori dinamik, kerana anda memperuntukkan memori secara manual, itulah sebabnya anda juga harus melepaskannya sendiri.

Di perpustakaan stdlib.h, ada fungsi khusus untuk melayani tujuan ini, iaitu fungsi bebas (). Hari ini, kita akan meneroka keperluan untuk menggunakan fungsi ini dalam bahasa pengaturcaraan C. Selepas itu, kita akan melihat beberapa contoh di mana fungsi ini telah digunakan untuk membebaskan memori secara manual dalam bahasa pengaturcaraan C di Linux.







Perlu menggunakan Fungsi Percuma di C untuk Membebaskan Memori Sistem:

Kita semua tahu bahawa sistem komputer kita mempunyai memori yang terhad, kerana itu kita tidak akan dapat menjalankan program yang tidak terbatas di dalamnya. Sekiranya peruntukan memori automatik, komputer menguruskan pembebasan memori apabila program anda selesai dijalankan. Namun, apabila kita mengalihkan memori secara manual dari timbunan, kita harus membebaskannya dari satu atau lain cara.



Jika tidak, kita akhirnya akan kehabisan memori, dan kita tidak akan menjalankan program kita lebih jauh. Di sinilah fungsi percuma () perpustakaan stdlib.h dimainkan. Kami menggunakan fungsi ini pada akhir program tepat sebelum pernyataan pengembalian sehingga memori timbunan harus dikembalikan ke sistem komputer sebelum penamatan program anda.



Katakan anda akan terus mengabaikan fungsi ini semasa menulis kod C anda yang sangat disasarkan ke arah peruntukan memori dinamik. Dalam kes itu, titik akan datang apabila anda tidak dapat mengakses timbunan anda lebih jauh kerana kehabisan memori. Itulah sebabnya fungsi yang nampaknya kurang berharga ini tidak boleh dilupakan setiap kali anda memikul tanggungjawab peruntukan memori secara dinamik.





Sintaks umum fungsi bebas () dalam bahasa pengaturcaraan C adalah seperti berikut:

batalpercuma (batal*ptr)

Di sini, kata kunci kosong sebelum fungsi bebas () menyatakan bahawa jenis pengembalian fungsi ini tidak sah. Penunjuk di dalam kurungan sesuai dengan lokasi memori yang perlu dibatalkan. Bahagian berikut akan menerangkan beberapa contoh di mana fungsi bebas () telah digunakan untuk melepaskan memori dinamik yang diperoleh dalam C.



Contoh Menggunakan Fungsi Percuma di C:

Fungsi percuma () dapat digunakan dengan ketiga fungsi peruntukan memori perpustakaan stdlib.h, iaitu malloc, calloc, dan realloc. Anda mesti menggunakan fungsi ini setelah menyatakan fungsi asas program anda supaya anda dapat menyerahkan memori timbunan yang telah anda peruntukkan secara dinamik semasa pelaksanaan program kembali ke sistem komputer anda. Sekarang, mari kita lihat beberapa contoh di mana fungsi bebas () telah digunakan dengan fungsi malloc dan calloc dalam bahasa pengaturcaraan C.

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

Kod C untuk menggunakan fungsi bebas () dengan fungsi calloc () telah dikongsi dalam gambar di bawah:

Tujuan asas kod ini adalah untuk memberikan beberapa memori secara dinamik dengan bantuan fungsi calloc (). Untuk itu, kami telah mengambil ukuran memori dinamik dan nilai memori dinamik ini sebagai input dari pengguna. Kemudian, kami bermaksud mencetak nilai yang diperoleh di terminal. Selepas keseluruhan kod ini, kami mempunyai fungsi () percuma kami yang akan melepaskan memori dinamik yang diperuntukkan kerana pelaksanaan program C kami.

Versi kod yang sama diubah suai juga ditunjukkan dalam gambar yang dipetik di bawah:

Versi yang diubahsuai ini hanya bertujuan untuk mencetak nilai memori yang diperuntukkan secara dinamik sebelum inisialisasi manualnya. Kita tahu bahawa fungsi calloc () menginisialisasi keseluruhan memori dengan sifar sebelum berlaku. Walau bagaimanapun, perkara utama yang harus diperhatikan di sini dalam kod ini adalah bahawa walaupun kod ini cukup ringkas dan ringkas, kami masih menggunakan fungsi bebas () setelah fungsi yang diinginkan dicapai hanya untuk melepaskan memori timbunan yang kami ada diperoleh hasil daripada pelaksanaan program C ini.

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

Kod C untuk menggunakan fungsi bebas () dengan fungsi malloc () telah dibagikan dalam gambar yang dilampirkan di bawah:

Tujuan asas kod ini adalah untuk memberikan beberapa memori secara dinamik dengan bantuan fungsi malloc (). Untuk itu, kami telah menetapkan nilai memori dinamik ini dalam gelung untuk. Kemudian, kami bertujuan untuk mencetak nilai yang diperoleh di terminal dengan bantuan yang lain untuk gelung. Setelah keseluruhan kod ini, kita mempunyai fungsi bebas () tepat sebelum pernyataan pengembalian yang hanya akan melepaskan memori dinamik yang diperuntukkan sebagai hasil pelaksanaan program C kita.

Kesimpulan:

Artikel ini menekankan pentingnya penggunaan fungsi bebas () dalam bahasa pengaturcaraan C di Linux. Sebilangan besar pengguna percaya bahawa fungsi peruntukan fail stdlib.h lebih penting; namun, dengan membaca artikel ini, anda dapat melihat dengan jelas bahawa fungsi bebas () sama pentingnya. Ini akan membantu anda melepaskan memori yang diperoleh secara dinamik dan memastikan bahawa anda tidak akan kehabisan memori setiap kali anda cuba melaksanakan program anda di masa hadapan.