Rumah >pembangunan bahagian belakang >C++ >Mengapakah `malloc()` Memerlukan Casting dalam C tetapi Tidak dalam C?
Mengapa Perbezaan Casting untuk malloc() dalam C dan C ?
Dalam pengaturcaraan C, memperuntukkan memori dengan malloc() tidak memerlukan hantaran eksplisit, kerana penunjuk kosong dalam C boleh ditukar secara tersirat kepada mana-mana jenis penunjuk lain. Walau bagaimanapun, dalam C , penukaran tersirat ini tidak disokong, menjadikan penghantaran perlu.
Sebab Perbezaan:
Perbezaan utama berpunca daripada keselamatan jenis yang lebih ketat dalam C . C menguatkuasakan semakan jenis yang lebih ketat untuk mengelakkan kemungkinan ralat, manakala C membenarkan sistem jenis yang lebih fleksibel.
Akibat Pemutus:
Dalam C, penuangan hasil malloc () menindas diagnostik berharga yang memberi amaran kepada anda tentang kehilangan pengisytiharan atau penggunaan fungsi yang salah. Jika pengisytiharan yang betul untuk malloc() tiada dan pelakon ditinggalkan dalam C , pengkompil akan membenderakan tugasan jenis yang tidak serasi (int ke penunjuk).
Amalan Disyorkan:
Untuk C , biasanya dinasihatkan untuk menggunakan kata kunci baharu dan memadamkan kata kunci untuk pengurusan memori dan bukannya malloc() dan percuma(). Teknik pengurusan ingatan khusus bahasa direka untuk menyelaraskan dengan sistem jenis dan menyediakan pendekatan yang lebih mantap.
Atas ialah kandungan terperinci Mengapakah `malloc()` Memerlukan Casting dalam C tetapi Tidak dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!