Perbezaan antara baharu dan malloc: baharu ialah pengendali C++ yang selamat jenis, digunakan untuk mencipta objek daripada jenis yang ditentukan dan mengembalikan penuding kepada objek. malloc ialah fungsi perpustakaan standard C yang memperuntukkan blok memori yang tidak ditaip dan mengembalikan penunjuk lompang* ke blok memori. pembina dan pemusnah panggilan baharu, malloc tidak. new mengurus memori mengikut masa jalan C++, manakala malloc memerlukan pengurusan manual.
Perbezaan antara baru dan malloc dalam C++
Dalam C++, new dan malloc ialah kedua-dua fungsi yang digunakan untuk peruntukan memori dinamik. Walau bagaimanapun, terdapat beberapa perbezaan utama di antara mereka:
- Sintaks dan jenis pulangan:
-
baru ialah pengendali C++ yang mencipta objek baharu daripada jenis yang ditentukan dan mengembalikan penunjuk kepada objek tersebut.
-
malloc ialah fungsi perpustakaan standard C yang memperuntukkan blok memori saiz tertentu dan mengembalikan penunjuk lompang* ke blok memori.
- Keselamatan Jenis:
-
baru adalah jenis selamat kerana ia menyemak sama ada jenis sepadan apabila memperuntukkan memori. Contohnya,
int* p = new int;
会分配一个整数指针,而 p = malloc(sizeof(int));
hanya memperuntukkan blok memori tanpa pemeriksaan jenis.
-
malloc tidak selamat jenis, ia hanya memperuntukkan memori, dan pemanggil bertanggungjawab untuk menguruskan jenis objek.
- Pembinaan dan pemusnahan:
-
new mula-mula akan memanggil pembina objek dan kemudian mengembalikan penunjuk objek. Apabila objek keluar dari skop, pemusnahnya dipanggil secara automatik.
-
malloc tidak akan memanggil pembina atau pemusnah. Fungsi ini perlu diuruskan secara manual oleh pemanggil.
- Pengurusan Memori:
-
baharu Pengurusan memori dikendalikan oleh masa jalan C++. Ia mengekalkan timbunan dalaman di latar belakang dan bertanggungjawab untuk memperuntukkan dan membebaskan memori.
-
malloc memerlukan pengurusan memori manual. Pemanggil bertanggungjawab untuk memperuntukkan, membebaskan dan mengagihkan semula memori. Pengurusan memori yang tidak betul boleh menyebabkan kebocoran memori atau segfault.
Ringkasan:
-
new ialah pengendali jenis selamat dalam C++ untuk mencipta objek baharu.
-
malloc ialah fungsi perpustakaan standard C yang digunakan untuk memperuntukkan memori mentah yang tidak ditaip.
- Untuk peruntukan memori dinamik, baharu biasanya merupakan pilihan yang lebih selamat dan lebih baik dalam program C++.
Atas ialah kandungan terperinci Perbezaan antara baru dan malloc dalam c++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan: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