Peruntukan Memori Vektor dalam C
Apabila bekerja dengan vektor dalam C , adalah penting untuk memahami ciri peruntukan memori mereka. Pertimbangkan penyataan berikut:
- vektor vect;
- vektor *vect = vektor baharu;
- vektor vect;
Peruntukan Tindanan atau Timbunan?
-
vektor vect: Ini memperuntukkan pengepala vektor pada tindanan manakala elemen sebenar diperuntukkan pada timbunan (stor percuma).
-
vector *vect = new vector;: Semuanya, termasuk penuding vektor dan elemen, diperuntukkan pada timbunan.
-
vector vect: Vektor diperuntukkan pada tindanan, tetapi penunjuk di dalamnya diperuntukkan pada timbunan. Sasaran penunjuk ini boleh berbeza-beza berdasarkan penggunaan.
Peruntukan Memori Dalaman
Untuk vektor dan bekas STL lain, peruntukan memori berlaku seperti berikut:
- Pengepala kontena, yang menyimpan metadata seperti saiz dan kapasiti, biasanya diperuntukkan pada tindanan.
- Elemen sebenar diperuntukkan secara dinamik pada stor percuma.
- Untuk vektor penunjuk, penunjuk itu sendiri juga diperuntukkan pada stor percuma, manakala objek yang mereka tunjuk boleh mempunyai pelbagai mekanisme peruntukan ingatan.
Atas ialah kandungan terperinci Bagaimanakah C Memperuntukkan Memori untuk Vektor: Timbunan atau Timbunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!