Dalam pengaturcaraan, perlu menyimpan data pengiraan. Data ini disimpan dalam ingatan. Lokasi memori untuk menyimpan data dalam pengaturcaraan komputer dikenali sebagai pembolehubah. Pembolehubah mempunyai jenis data tertentu. Oleh itu, ingatan diperuntukkan untuk menjalankan program. Memori boleh diperuntukkan dalam dua cara. Mereka adalah peruntukan memori statik dan peruntukan memori dinamik. Dalam peruntukan memori statik, apabila memori diperuntukkan ia tidak dapat diubah. Ingatan tidak boleh diguna semula. Tetapi dalam peruntukan memori dinamik, apabila memori diperuntukkan, ia dapat diubah. The Perbezaan utama antara peruntukan memori statik dan dinamik ialah Dalam peruntukan memori statik Setelah memori diperuntukkan, saiz memori ditetapkan semasa dalam peruntukan memori dinamik, apabila memori diperuntukkan, saiz memori dapat diubah.
1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apakah peruntukan memori statik
3. Apakah peruntukan memori dinamik
4. Persamaan antara peruntukan memori statik dan dinamik
5. Perbandingan sampingan - Peruntukan memori dinamik statik dalam bentuk jadual
6. Ringkasan
Dalam peruntukan memori statik, memori yang diperuntukkan ditetapkan. Setelah memori diperuntukkan, ia tidak dapat diubah. Ingatan tidak dapat ditingkatkan atau menurun. Contohnya, dalam bahasa C jika pengaturcara menulis int x, yang bermaksud bahawa pemboleh ubah dapat menyimpan nilai integer. Bilangan bait bergantung pada komputer. Terdapat juga tatasusunan. E.g. int x [5]; X ini adalah array yang dapat menyimpan urutan data yang mempunyai jenis yang sama. Ia boleh menyimpan lima elemen integer. Ia tidak dapat menyimpan lebih daripada lima elemen. Di Java, array boleh dibuat sebagai, int arr [] = int baru [5]; Array 'ar' dapat menyimpan 5 nilai integer dan tidak dapat menyimpan lebih dari itu.
Rajah 01: Kaedah peruntukan memori
Dalam peruntukan memori statik, apabila pembolehubah diperuntukkan, mereka tetap kekal. Selepas peruntukan awal, pengaturcara tidak dapat mengubah saiz memori. Sekiranya pengaturcara memperuntukkan array yang boleh menyimpan 10 elemen, tidak mungkin untuk menyimpan nilai lebih daripada jumlah yang ditentukan. Sekiranya pengaturcara pada mulanya memperuntukkan array yang boleh memegang 10 elemen, tetapi hanya memerlukan 5 elemen, maka ada pembaziran ingatan. Ingatan itu tidak lagi diperlukan, tetapi juga tidak mungkin untuk menggunakan semula memori. Peruntukan memori statik ditetapkan tetapi pelaksanaannya mudah dan mudah, dan ia juga pantas.
Kadang -kadang perlu mengubah saiz memori. Jadi ingatan dapat diperuntukkan secara dinamik. Bergantung pada penyisipan dan memadam elemen data, memori dapat tumbuh atau mengecut. Ia dikenali sebagai peruntukan memori dinamik.
Dalam bahasa C, stdlib.H fail header, terdapat empat fungsi untuk peruntukan memori dinamik. Mereka adalah Calloc, Malloc, Realloc dan Percuma. Fungsi malloc () memperuntukkan saiz bait yang diperlukan dan mengembalikan penunjuk yang tidak sah, menunjuk bait pertama memori yang diperuntukkan. Fungsi calloc () memperuntukkan saiz bait yang diperlukan dan memulakannya menjadi sifar. Kemudian mengembalikan penunjuk tidak sah ke ingatan. Fungsi percuma () digunakan untuk menyusun semula memori yang diperuntukkan. Dan fungsi realloc dapat mengubah memori yang diperuntukkan sebelumnya. Setelah memperuntukkan memori menggunakan Calloc atau Malloc, saiz memori ditetapkan, tetapi mereka dapat ditingkatkan atau dikurangkan dengan menggunakan fungsi Realloc. Di Jawa, koleksi boleh digunakan untuk peruntukan memori dinamik.
Kelebihan utama peruntukan memori dinamik ialah ia menjimatkan ingatan. Pengaturcara dapat memperuntukkan memori atau melepaskan memori yang diperlukan. Memori boleh diagihkan semula semasa pelaksanaan dan boleh membebaskan memori apabila tidak diperlukan. Peruntukan Memori Dinamik juga cekap daripada peruntukan memori statik. Satu kelemahan ialah melaksanakan peruntukan memori dinamik adalah kompleks.
Peruntukan Memori Dinamik Statik Vs | |
Peruntukan memori statik adalah kaedah memperuntukkan memori, dan apabila memori diperuntukkan, ia tetap. | Peruntukan Memori Dinamik adalah kaedah memperuntukkan memori, dan apabila memori diperuntukkan, ia dapat diubah. |
Pengubahsuaian | |
Dalam peruntukan memori statik, tidak mungkin untuk mengubah saiz selepas peruntukan awal. | Dalam peruntukan memori dinamik, memori dapat diminimumkan atau memaksimumkan dengan sewajarnya. |
Pelaksanaan | |
Peruntukan memori statik mudah dilaksanakan. | Peruntukan memori dinamik adalah rumit untuk dilaksanakan. |
Kelajuan | |
Dalam ingatan statik, pelaksanaan peruntukan lebih cepat daripada peruntukan memori dinamik. | Dalam ingatan dinamik, pelaksanaan peruntukan lebih lambat daripada peruntukan memori statik. |
Penggunaan memori | |
Dalam peruntukan memori statik, tidak dapat menggunakan semula ingatan yang tidak digunakan. | Peruntukan memori dinamik membolehkan penggunaan semula memori. Pengaturcara dapat memperuntukkan lebih banyak ingatan apabila diperlukan . Dia boleh melepaskan ingatan apabila perlu. |
Dalam pengaturcaraan, peruntukan memori statik dan peruntukan memori dinamik adalah dua mekanisme untuk memperuntukkan memori. Perbezaan antara peruntukan memori statik dan dinamik adalah bahawa dalam peruntukan memori statik apabila memori diperuntukkan, saiz memori ditetapkan semasa dalam peruntukan memori dinamik, apabila memori diperuntukkan, saiz memori dapat diubah. Pengaturcara boleh memutuskan sama ada memori mestilah statik atau dinamik bergantung pada aplikasi.
Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian mengikut nota petikan. Sila muat turun versi PDF di sini: Perbezaan antara peruntukan memori statik dan dinamik
1.Kayal, Somnath. "Somnath Kayal."Perbezaan antara peruntukan memori statik & peruntukan memori dinamik, 1 Jan. 1970. Terdapat di sini
2.TutorialSpoint.com. "Array di C." Tujuan itu. Terdapat di sini
3.Nareshtechnologies. Memori statik vs memori dinamik | C Tutorial Bahasa, Naresh I Technologies, 19 Sept. 2016. Terdapat di sini