Rumah > pembangunan bahagian belakang > C++ > Di Mana Objek Berada dalam Memori: Timbunan, Timbunan atau Tempat Lain?

Di Mana Objek Berada dalam Memori: Timbunan, Timbunan atau Tempat Lain?

Linda Hamilton
Lepaskan: 2024-11-14 19:05:02
asal
748 orang telah melayarinya

Where Do Objects Reside in Memory: Stack, Heap, or Somewhere Else?

Penciptaan Objek Timbunan lwn. Timbunan

Soalan itu menimbulkan kebimbangan tentang penciptaan objek pada timbunan atau timbunan. Walaupun kod yang disediakan (Objek o:) membayangkan penciptaan objek pada tindanan, ia tidak menyebut tindanan atau timbunan secara eksplisit. Mari kita jelaskan perbezaan ini.

Dalam C , lokasi objek dalam ingatan ditentukan oleh tempoh penyimpanannya, bukan tindanan atau timbunan secara khusus. Terdapat empat tempoh storan: automatik, dinamik, statik dan benang setempat. Storan automatik digunakan terutamanya untuk pembolehubah tempatan pada timbunan panggilan, manakala storan dinamik digunakan untuk objek yang diperuntukkan pada timbunan dengan 'baharu'.

  • Timbunan: Storan automatik, biasanya dikhaskan untuk pembolehubah setempat.
  • Timbunan: Storan dinamik, digunakan untuk objek yang dibuat dengan 'baharu'.
  • Memori Statik: Statik (atau benang -tempatan) objek tidak berada dalam timbunan mahupun timbunan, biasanya di kawasan yang berasingan.

Penciptaan Objek

  • Objek o; // Pembolehubah setempat dengan storan automatik (tindanan)
  • Objek o = Objek(); // Storan dinamik (timbunan)
  • Objek* o; // Penunjuk kepada objek dengan storan automatik (tindanan)
  • Objek* o = new Object(); // Penunjuk kepada objek dengan storan dinamik (timbunan)

Konteks dan Tempoh Storan

Tempoh penyimpanan objek ditentukan oleh konteksnya. Contohnya:

  • foo.o: Pembolehubah ahli dalam objek yang diperuntukkan secara statik (bukan tindanan mahupun timbunan)
  • f.o: Ahli pembolehubah dalam objek yang diperuntukkan setempat (tindanan)
  • p->o: Pembolehubah ahli dalam objek yang diperuntukkan secara dinamik (timbunan)

Penunjuk dan Storan

Penunjuk itu sendiri adalah objek dan mengikut peraturan storan yang sama. Storan mereka ditentukan oleh konteks mereka, bukan jenis yang mereka tunjuk. Jenis yang mereka tunjuk untuk menentukan tempoh penyimpanan objek runcing.

Secara keseluruhan, memahami tempoh storan adalah penting untuk memahami pengurusan memori dalam C . Objek boleh berada di kawasan memori yang berbeza bergantung pada tempoh penyimpanan dan konteksnya.

Atas ialah kandungan terperinci Di Mana Objek Berada dalam Memori: Timbunan, Timbunan atau Tempat Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan