ทำไมหนังสือ“ The C Programming Language” ถึงบอกว่าฉันต้องโยน malloc?
วันนี้ผมมาถึงหน้า167ของภาษา C Programming (ฉบับที่สองไบรอัน W. Kernighan และเดนนิสเอ็ม Ritchie)mallocและพบว่าผู้เขียนบอกว่าผมต้องทิ้ง นี่คือส่วนหนึ่งจากหนังสือ: 7.8.5 การจัดการพื้นที่เก็บข้อมูล ฟังก์ชัน malloc และ calloc รับบล็อกของหน่วยความจำแบบไดนามิก void *malloc(size_t n) ส่งคืนตัวชี้ไปยัง n ไบต์ของที่เก็บข้อมูลที่ไม่กำหนดค่าเริ่มต้นหรือ NULL ถ้าไม่สามารถดำเนินการตามคำขอได้ void *calloc(size_t n, size_t size) ส่งกลับตัวชี้ไปยังพื้นที่ว่างเพียงพอสำหรับอาร์เรย์ของวัตถุ n ขนาดที่ระบุหรือ NULL ถ้าคำขอไม่สามารถตอบสนอง ที่เก็บข้อมูลถูกเตรียมใช้งานเป็นศูนย์ ตัวชี้ที่ส่งคืนโดย malloc หรือ calloc มีการจัดตำแหน่งที่เหมาะสมสำหรับวัตถุที่เป็นปัญหา แต่ต้องถูกส่งลงในประเภทที่เหมาะสมเช่นเดียวกับใน int *ip; ip = (int *) calloc(n, sizeof(int)); ผมรู้อยู่แล้วว่าmalloc(และครอบครัว) …