ฟังก์ชัน calloc() ใน C++ คืออะไร

Fangkchan Calloc Ni C Khux Xari



การทำความเข้าใจเกี่ยวกับฟังก์ชันการจัดสรรหน่วยความจำประเภทต่างๆ เป็นสิ่งสำคัญขณะทำงานใน C++ เดอะ การโทร () เป็นฟังก์ชันหนึ่งที่ใช้บ่อยใน C++ เพื่อจัดสรรหน่วยความจำแบบไดนามิก แม้ว่าการใช้งานอาจดูเรียบง่าย แต่ก็มีประเด็นสำคัญบางประการที่ควรคำนึงถึงขณะใช้งาน การโทร () .

ในบทความนี้เราจะดูที่ การโทร () ฟังก์ชันและวิธีการใช้งานให้สำเร็จใน 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++ โดยทำตามคำแนะนำที่ระบุในบทความนี้