Penciptaan Objek: Stack vs. Heap
Apabila mencipta objek dalam C , pilihan sintaks anda mempengaruhi sama ada ia berada pada tindanan atau timbunan itu. Walaupun konsep ini tidak dirujuk secara eksplisit dalam coretan kod yang disediakan, adalah penting untuk memahami untuk pengurusan memori yang berkesan.
Penciptaan Objek pada Tindanan
Kod Objek o ; mencipta objek pada timbunan. Tempoh penyimpanan objek adalah automatik, bermakna ia wujud dalam skop tempat ia diisytiharkan. Apabila skop tamat, begitu juga objek.
Penciptaan Objek pada Timbunan
Untuk memperuntukkan objek pada timbunan, kami menggunakan Objek * o; o = Objek baru(). Ini mencipta penunjuk pada timbunan yang menunjuk ke objek pada timbunan. Tempoh storan objek adalah dinamik, diperuntukkan pada masa jalan dan mesti diagihkan secara manual (melalui pemadaman) untuk mengelakkan kebocoran memori.
Mencipta Penunjuk dan Menyimpan Objek Timbunan
Dalam kod Object * o; o = new Object(), penunjuk o dicipta pada timbunan, tetapi ia menunjuk kepada objek yang dicipta pada timbunan. Ini membolehkan kami mengakses objek timbunan secara tidak langsung melalui penuding.
Objek Global
Pembolehubah global berada dalam kawasan memori yang berbeza di luar tindanan dan timbunan. Apabila Objek * o diisytiharkan sebagai pembolehubah global, penunjuk itu sendiri disimpan dalam kawasan memori global ini.
Tempoh Penyimpanan
Dalam C , tempoh storan menentukan peruntukan objek :
Atas ialah kandungan terperinci Stack vs. Heap: Di Mana Objek C Hidup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!