Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Perbezaan antara baru dan malloc dalam c++

Perbezaan antara baru dan malloc dalam c++

下次还敢
下次还敢asal
2024-05-01 12:09:18322semak imbas

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++

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:

  1. 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.
  1. 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.
  1. 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.
  1. 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