C : Mendedahkan Perbezaan Antara Free-Store dan Heap
Dalam bidang peruntukan memori dinamik, C menawarkan dua mekanisme utama: baharu /padam dan malloc/percuma. Walaupun kedua-duanya sering dirujuk sebagai beroperasi pada timbunan, ini menimbulkan persoalan sama ada terdapat perbezaan praktikal antara istilah "kedai bebas" dan "timbunan".
Adakah terdapat perbezaan yang jelas dalam bagaimana pengkompil mengendalikan istilah ini?
Jawapannya terletak pada evolusi pengurusan memori C. Dari segi sejarah, "timbunan" merujuk secara khusus kepada kawasan memori yang diuruskan oleh fungsi malloc/free. Walau bagaimanapun, dengan pengenalan pengendali baharu dan padam, konsep "kedai percuma" yang berasingan muncul. Ini bertujuan untuk menguatkuasakan pengasingan antara dua sistem pengurusan memori, menghalang percampuran tidak sengaja bagi pengagih yang berbeza.
Hari ini, untuk C , perbezaan antara free-store dan timbunan telah menjadi sebahagian besarnya konseptual. Kedua-dua baru/padam dan malloc/percuma memperuntukkan memori daripada kumpulan yang sama, biasanya diuruskan oleh sistem pengendalian. Walau bagaimanapun, penggunaannya tetap berbeza. new/delete digunakan dengan objek yang memerlukan pembina dan pemusnah, manakala malloc/free lebih fleksibel dan digunakan untuk peruntukan memori mentah.
Dalam temu bual, adalah perkara biasa untuk menekankan perbezaan tradisional:
Walau bagaimanapun, penemuduga juga mungkin mengakui bahawa penyusun moden selalunya tidak menguatkuasakan perbezaan ini secara ketat, yang berpotensi membenarkan kedua-dua pengendali mengakses ruang memori yang sama.
Atas ialah kandungan terperinci Adakah Terdapat Perbezaan Nyata Antara Kedai Percuma dan Timbunan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!