ในบทความนี้เราจะดูที่ การโทร () ฟังก์ชันและวิธีการใช้งานให้สำเร็จใน C++
ฟังก์ชัน calloc() คืออะไร?
เดอะ ฟังก์ชัน calloc() เป็นฟังก์ชันการจัดสรรหน่วยความจำในการเขียนโปรแกรมภาษา C++ ใช้เพื่อจัดสรรบล็อกหน่วยความจำสำหรับอาร์เรย์หรือชุดของตัวแปร เดอะ การโทร () ลักษณะการทำงานเหมือนกับ มัลลอค() ฟังก์ชัน ยกเว้นแต่ยังตั้งค่าหน่วยความจำที่จัดสรรเป็นศูนย์ในตอนเริ่มต้น สิ่งนี้ทำให้มั่นใจได้ว่าหน่วยความจำที่จัดสรรนั้นเริ่มต้นเป็นค่าที่รู้จัก ซึ่งมีประโยชน์เมื่อทำงานกับอาร์เรย์และโครงสร้าง
ไวยากรณ์สำหรับ ฟังก์ชัน calloc() มีดังนี้
เป็นโมฆะ * โทร ( size_t หน่วยความจำ , size_t ขนาด )
ฟังก์ชันรับสองอาร์กิวเมนต์: หน่วยความจำ และ ขนาด . เดอะ หน่วยความจำ อาร์กิวเมนต์ระบุจำนวนองค์ประกอบในอาร์เรย์ที่จัดสรร ในขณะที่ ขนาด อาร์กิวเมนต์ระบุขนาดของแต่ละองค์ประกอบเป็นไบต์
นอกจากนี้ หากการจัดสรรหน่วยความจำสำเร็จ การโทร () ฟังก์ชันจะส่งกลับตัวชี้ว่าง มิฉะนั้นจะส่งกลับตัวชี้ไปที่จุดเริ่มต้นของบล็อกหน่วยความจำที่สร้างขึ้นใหม่ เพื่อหลีกเลี่ยงการรั่วไหลของหน่วยความจำ หน่วยความจำที่จัดสรรโดย การโทร () ควรลบออกโดยใช้ ฟรี() วิธีการเมื่อไม่จำเป็นต้องใช้อีกต่อไป
จะใช้ฟังก์ชัน calloc() ใน C++ ได้อย่างไร?
ใช้ การโทร () ฟังก์ชั่นใน C ++ ให้ทำตามขั้นตอนด้านล่าง:
ขั้นตอนที่ 1: รวมไฟล์ส่วนหัวที่จำเป็นสำหรับ การโทร () ฟังก์ชัน ซึ่งก็คือ
ขั้นตอนที่ 2: จากนั้นประกาศตัวแปรพอยน์เตอร์ของชนิดข้อมูลที่ต้องการ
ขั้นตอนที่ 3: หลังจากนั้นใช้ การโทร () ฟังก์ชันจัดสรรหน่วยความจำและเริ่มต้นเป็น 0
ขั้นตอนที่ 4: ใช้หน่วยความจำที่จัดสรรตามต้องการ
ขั้นตอนที่ 5: เมื่อคุณใช้หน่วยความจำที่จัดสรรเสร็จแล้ว ให้ปล่อยหน่วยความจำโดยใช้ ฟรี() การทำงาน.
ตัวอย่างต่อไปนี้แสดง การโทร () การใช้งานฟังก์ชั่นใน C++
#รวม#รวมถึง
ใช้เนมสเปซมาตรฐาน ;
นานาชาติ หลัก ( ) {
นานาชาติ * พีทีอาร์ ;
พีทีอาร์ = ( นานาชาติ * ) โทร ( 6 , ขนาดของ ( นานาชาติ ) ) ;
ถ้า ( ! พีทีอาร์ ) {
ศาล << 'การจัดสรรหน่วยความจำล้มเหลว' ;
ทางออก ( 1 ) ;
}
ศาล << 'กำลังเริ่มต้นค่า...' << จบ
<< จบ ;
สำหรับ ( นานาชาติ ฉัน = 0 ; ฉัน < 6 ; ฉัน ++ ) {
พีทีอาร์ [ ฉัน ] = ฉัน * 3 ;
}
ศาล << 'ค่าเริ่มต้น' << จบ ;
สำหรับ ( นานาชาติ ฉัน = 0 ; ฉัน < 6 ; ฉัน ++ ) {
ศาล << * ( พีทีอาร์ + ฉัน ) << จบ ;
}
ฟรี ( พีทีอาร์ ) ;
กลับ 0 ;
}
ในโค้ดด้านบน ตัวชี้จำนวนเต็ม พีทีอาร์ จะถูกประกาศเป็นอันดับแรก จากนั้นหน่วยความจำจะถูกจัดสรรสำหรับ 6 จำนวนเต็มโดยใช้ การโทร (), โดยหน่วยความจำเริ่มต้นด้วย 0 ขนาดของ(int) ฟังก์ชันใช้ในการคำนวณจำนวนหน่วยความจำที่ต้องใช้ในการจัดเก็บจำนวนเต็ม การจัดสรรหน่วยความจำจะถูกตรวจสอบเพื่อหาข้อผิดพลาดเพื่อให้แน่ใจว่าประสบความสำเร็จ หากไม่เป็นเช่นนั้น โปรแกรมจะยุติการทำงานและแสดงข้อความแสดงข้อผิดพลาด
หน่วยความจำที่จัดสรรจะถูกเตรียมใช้งานโดยใช้ตัวเลขที่ได้จากการคูณ 'ฉัน * 3' โดยใช้ก สำหรับ ห่วง ค่าที่เก็บไว้ในหน่วยความจำที่จัดสรรจะถูกพิมพ์โดยใช้วินาทีสำหรับเลขคณิตของลูปและพอยน์เตอร์ *(ptr + ผม) . ในที่สุด หน่วยความจำที่ถูกจัดสรรแบบไดนามิกจะถูกปล่อยโดยการเรียก ฟรี() ฟังก์ชันซึ่งจะหยุดการรั่วไหลของหน่วยความจำ เป็นสัญญาณว่าโปรแกรมทำงานสำเร็จ มันจะคืนค่า 0
เอาต์พุต
บทสรุป
ใน C++, การโทร () ฟังก์ชันมีประโยชน์สำหรับการจัดสรรหน่วยความจำแบบไดนามิก ไม่เพียงแต่จัดสรรหน่วยความจำเท่านั้น แต่ยังทำให้หน่วยความจำเป็นศูนย์อีกด้วย ซึ่งมีประโยชน์เมื่อทำงานกับอาร์เรย์และโครงสร้าง เข้าใจวิธีใช้ การโทร () อย่างมีประสิทธิภาพเป็นสิ่งสำคัญสำหรับการหลีกเลี่ยงการรั่วไหลของหน่วยความจำและรับประกันความสำเร็จของการดำเนินการโปรแกรม นักพัฒนาสามารถใช้อย่างปลอดภัย การโทร () วิธีการในโปรแกรม C++ โดยทำตามคำแนะนำที่ระบุในบทความนี้