Rumah >pembangunan bahagian belakang >C++ >Di manakah Pembolehubah Global dalam C Menyimpan Memorinya: Timbunan atau Timbunan?
Peruntukan Memori untuk Pembolehubah Global dalam C : Stack vs Heap
Dalam C , apabila struktur data diisytiharkan secara global, persoalan timbul sama ada ia menggunakan ingatan tindanan atau ingatan timbunan. Untuk memahami perkara ini, kami menyelidiki susun atur memori proses C biasa.
Reka Letak Memori Proses C
Proses A C biasanya memperuntukkan lima kawasan memori yang berbeza:
Peruntukan Pembolehubah Global
Apabila pembolehubah global diisytiharkan, memorinya diperuntukkan sama ada dalam segmen data atau Segmen bss.
Oleh itu, pembolehubah global disimpan dalam segmen data atau segmen bss, yang merupakan sebahagian daripada memori statik diperuntukkan kepada program.
Contoh
Dalam contoh yang diberikan, array arr ialah pembolehubah global jenis struct AAA. Ia akan diperuntukkan sama ada dalam segmen data atau segmen bss, bergantung pada sama ada ia dimulakan (mempunyai nilai lalai) atau tidak dimulakan (mengandungi nilai sampah).
Kesimpulan
Ringkasnya, struktur data global dalam C menggunakan memori daripada memori statik yang diperuntukkan kepada program, khususnya daripada segmen data atau segmen bss, yang bukan sebahagian daripada kawasan ingatan timbunan atau timbunan.
Atas ialah kandungan terperinci Di manakah Pembolehubah Global dalam C Menyimpan Memorinya: Timbunan atau Timbunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!