Perbezaan Utama – Peruntukan Memori Statik lwn Dinamik
Dalam pengaturcaraan, adalah perlu untuk 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, memori diperuntukkan untuk menjalankan program. Memori boleh diperuntukkan dalam dua cara. Ia adalah peruntukan memori Statik dan peruntukan memori Dinamik. Dalam peruntukan memori statik, setelah memori diperuntukkan ia tidak boleh diubah. Memori tidak boleh digunakan semula. Tetapi dalam peruntukan memori dinamik, sebaik sahaja memori diperuntukkan ia boleh diubah. Perbezaan utama antara peruntukan memori statik dan dinamik ialah dalam peruntukan memori statik sebaik sahaja memori diperuntukkan, saiz memori ditetapkan manakala dalam peruntukan memori dinamik, setelah memori diperuntukkan, saiz memori boleh ditukar.
Apakah itu Peruntukan Memori Statik?
Dalam peruntukan memori statik, memori yang diperuntukkan ditetapkan. Setelah memori diperuntukkan, ia tidak boleh diubah. Ingatan tidak boleh ditambah atau dikurangkan. Sebagai contoh, dalam bahasa C jika pengaturcara menulis int x, yang bermaksud bahawa pembolehubah boleh menyimpan nilai integer. Bilangan bait bergantung pada komputer. Terdapat juga tatasusunan. Cth. int x [5]; X ini ialah tatasusunan yang boleh menyimpan jujukan data yang mempunyai jenis yang sama. Ia boleh menyimpan lima elemen integer. Ia tidak boleh menyimpan lebih daripada lima elemen. Dalam Java, tatasusunan boleh dibuat sebagai, int arr=new int[5]; Tatasusunan 'arr' boleh menyimpan 5 nilai integer dan tidak boleh menyimpan lebih daripada itu.
Rajah 01: Kaedah Peruntukan Memori
Dalam peruntukan memori statik, sebaik sahaja pembolehubah diperuntukkan, ia kekal kekal. Selepas peruntukan awal, pengaturcara tidak boleh mengubah saiz memori. Jika pengaturcara memperuntukkan tatasusunan yang boleh menyimpan 10 elemen, tidak mungkin untuk menyimpan nilai lebih daripada jumlah yang ditentukan. Jika pengaturcara pada mulanya memperuntukkan tatasusunan yang boleh memuatkan 10 elemen, tetapi hanya memerlukan 5 elemen, maka terdapat pembaziran memori. Memori itu tidak lagi diperlukan, tetapi juga tidak mungkin untuk menggunakan semula memori itu. Peruntukan memori statik telah ditetapkan tetapi pelaksanaannya ringkas dan mudah serta ia juga pantas.
Apakah itu Peruntukan Memori Dinamik?
Kadangkala perlu menukar saiz memori. Jadi ingatan boleh diperuntukkan secara dinamik. Bergantung pada sisipan dan pemadaman elemen data, memori boleh berkembang atau mengecut. Ia dikenali sebagai peruntukan memori dinamik.
Dalam bahasa C, fail pengepala stdlib.h, terdapat empat fungsi untuk peruntukan memori dinamik. Ia adalah calloc, malloc, realloc dan percuma. Fungsi malloc() memperuntukkan saiz bait yang diperlukan dan mengembalikan penunjuk kosong, menunjuk bait pertama memori yang diperuntukkan. Fungsi calloc() memperuntukkan saiz bait yang diperlukan dan memulakannya kepada sifar. Kemudian mengembalikan penunjuk kosong ke ingatan. Fungsi free() digunakan untuk mengagihkan semula memori yang diperuntukkan. Dan fungsi realloc boleh mengubah suai memori yang diperuntukkan sebelum ini. Selepas memperuntukkan memori menggunakan calloc atau malloc, saiz memori ditetapkan, tetapi ia boleh ditambah atau dikurangkan menggunakan fungsi realloc. Di Java, koleksi boleh digunakan untuk peruntukan memori dinamik.
Kelebihan utama peruntukan memori dinamik ialah ia menjimatkan memori. Pengaturcara boleh memperuntukkan memori atau melepaskan memori seperti yang diperlukan. Memori boleh diagihkan semula semasa pelaksanaan dan boleh membebaskan memori apabila ia tidak diperlukan. Peruntukan memori dinamik juga cekap daripada peruntukan memori statik. Satu kelemahan ialah melaksanakan peruntukan memori dinamik adalah rumit.
Apakah Persamaan Antara Peruntukan Memori Statik dan Dinamik?
- Kedua-duanya ialah mekanisme peruntukan memori.
- Kedua-duanya hendaklah dilaksanakan oleh pengaturcara secara manual.
Apakah Perbezaan Antara Peruntukan Memori Statik dan Dinamik?
Peruntukan Memori Statik lwn Dinamik |
|
Peruntukan memori statik ialah kaedah memperuntukkan memori dan setelah memori diperuntukkan, ia ditetapkan. | Peruntukan memori dinamik ialah kaedah memperuntukkan memori dan setelah memori diperuntukkan, ia boleh ditukar. |
Pengubahsuaian | |
Dalam peruntukan memori statik, tidak mungkin untuk mengubah saiz selepas peruntukan awal. | Dalam peruntukan memori dinamik, memori boleh diminimumkan atau dimaksimumkan dengan sewajarnya. |
Pelaksanaan | |
Peruntukan memori statik mudah dilaksanakan. | Peruntukan memori dinamik adalah rumit untuk dilaksanakan. |
Kelajuan | |
Dalam memori statik, pelaksanaan peruntukan lebih cepat daripada peruntukan memori dinamik. | Dalam memori dinamik, pelaksanaan peruntukan adalah lebih perlahan daripada peruntukan memori statik. |
Penggunaan Memori | |
Dalam peruntukan memori statik, tidak boleh menggunakan semula memori yang tidak digunakan. | Peruntukan memori dinamik membenarkan penggunaan semula memori. Pengaturcara boleh memperuntukkan lebih banyak memori apabila diperlukan. Dia boleh melepaskan ingatan apabila perlu. |
Ringkasan – Peruntukan Memori Statik lwn Dinamik
Dalam pengaturcaraan, peruntukan memori statik dan peruntukan memori dinamik ialah dua mekanisme untuk memperuntukkan memori. Perbezaan antara peruntukan memori statik dan dinamik ialah dalam peruntukan memori statik sebaik sahaja memori diperuntukkan, saiz memori ditetapkan manakala dalam peruntukan memori dinamik, apabila memori diperuntukkan, saiz memori boleh diubah. Pengaturcara boleh memutuskan sama ada memori harus statik atau dinamik bergantung pada aplikasi.
Muat turun PDF Peruntukan Memori Statik lwn Dinamik
Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian seperti dalam nota petikan. Sila muat turun versi PDF di sini: Perbezaan Antara Peruntukan Memori Statik dan Dinamik