สารบัญ:
วีดีโอ: C มีตัวเก็บขยะหรือไม่?
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
C ไม่ ไม่ มี อัตโนมัติ เก็บขยะ . หากคุณลืมติดตามวัตถุ คุณ มี สิ่งที่เรียกว่า 'หน่วยความจำรั่ว' หน่วยความจำจะยังคงได้รับการจัดสรรให้กับโปรแกรมโดยรวม แต่จะไม่มีอะไรสามารถใช้งานได้หากคุณทำตัวชี้สุดท้ายหายไป การจัดการทรัพยากรหน่วยความจำเป็นข้อกำหนดที่สำคัญใน ค โปรแกรม
เมื่อพิจารณาตามนี้แล้ว C ขยะถูกเก็บรวบรวมหรือไม่?
C++ ไม่ต้องการ a คนเก็บขยะ เพราะมันไม่มี ขยะ . ใน C ++ สมัยใหม่คุณใช้สมาร์ทพอยน์เตอร์ดังนั้นจึงไม่มี ขยะ.
แล้วหน้าที่ของตัวเก็บขยะคืออะไร? คนเก็บขยะ อยู่ในความดูแลของ สะสม และถอด ของเสีย และวัสดุรีไซเคิลเพื่อการแปรรูปต่อไป งานประจำ หน้าที่ จดทะเบียนใน a เก็บขยะ ตัวอย่าง Resume ที่กำลังดำเนินการอยู่ ของเสีย รถรวบรวมตามเส้นทางที่กำหนด สะสม ปฏิเสธและรายงานต่อผู้บังคับบัญชา
อย่างนั้น การรวบรวมขยะ C คืออะไร?
เก็บขยะ (GC) เป็นกลไกที่ให้การเรียกคืนหน่วยความจำอัตโนมัติสำหรับบล็อกหน่วยความจำที่ไม่ได้ใช้ โปรแกรมเมอร์จะจัดสรรหน่วยความจำแบบไดนามิก แต่เมื่อไม่ต้องการบล็อกอีกต่อไป พวกเขาไม่ต้องส่งคืนหน่วยความจำนั้นไปยังระบบอย่างชัดเจนด้วยการเรียก free()
คุณทำถังขยะได้อย่างไร?
วิธีที่ง่ายที่สุดในการนำตัวรวบรวมขยะไปใช้คือ:
- ตรวจสอบให้แน่ใจว่าคุณสามารถเปรียบเทียบรากของโลกได้
- ตรวจสอบให้แน่ใจว่าคุณสามารถสำรวจฮีปได้เช่น ทุกค่าในฮีปเป็นอ็อบเจ็กต์ที่ใช้เมธอด Visit ที่ส่งคืนการอ้างอิงทั้งหมดจากออบเจกต์นั้น
- เก็บชุดของค่าที่จัดสรรไว้ทั้งหมด