ข้ามไปเนื้อหา

ตัวชี้ที่เป็นโมฆะ

จากวิกิพีเดีย สารานุกรมเสรี
(เปลี่ยนทางจาก ตัวชี้ว่าง)

ในการคอมพิวเตอร์ ตัวชี้ที่เป็นโมฆะ (อังกฤษ: null pointer) คือ ตัวชี้ หรือ การอ้างอิง ที่ไม่ได้อ้างอิงถึงวัตถุที่ถูกต้อง โปรแกรมมักจะใช้ตัวชี้ที่เป็นโมฆะ เพื่อแสดงเงื่อนไขต่างๆ เช่น การสิ้นสุดรายการที่ไม่ทราบความยาว หรือความล้มเหลวในการดำเนินการบางอย่าง การใช้ตัวชี้ที่เป็นโมฆะนี้สามารถเปรียบเทียบกับ ประเภทที่เป็นโมฆะได้ และกับค่า Nothing ใน ประเภทตัวเลือก

คุณไม่ควรสับสนตัวชี้ที่เป็นโมฆะกับ ตัวชี้ที่ไม่ได้ใส่ค่าเริ่มต้น (อังกฤษ: uninitialized pointer) กล่าวคือ ตัวชี้ที่เป็นโมฆะรับประกันว่าจะเปรียบเทียบออกมามีค่าไม่เท่ากับตัวชี้ใด ๆ ที่ชี้ไปยังวัตถุที่ถูกต้อง อย่างไรก็ตาม ขึ้นอยู่กับภาษาและการอิมพลีเมนต์ ตัวชี้ที่ไม่ได้ใส่ค่าเริ่มต้นอาจมีพฤติกรรมต่างไปจากนั้น เช่น มันอาจแสดงพฤติกรรมที่ไม่ได้กำหนดไว้

เนื่องจากตัวชี้ที่เป็นโมฆะ ไม่ได้ชี้ไปยังวัตถุที่ถูกต้อง ความพยายามในการเข้าถึงข้อมูลที่จัดเก็บไว้ในตำแหน่งหน่วยความจำนั้น (อันเป็นโมฆะ) อาจทำให้เกิดข้อผิดพลาดรันไทม์หรือโปรแกรมล่ม นี่คือ ข้อผิดพลาดของตัวชี้ที่เป็นโมฆะ นี่เป็นจุดอ่อนของซอฟต์แวร์ประเภทหนึ่งที่พบบ่อยที่สุด [1] นอกจากนี้ Tony Hoare ผู้แนะนำแนวคิดนี้ เรียกสิ่งนี้ว่าเป็น "ความผิดพลาดมูลค่าพันล้านดอลลาร์"

ภาษาซี

[แก้]

ในภาษาซี, ตัวชี้ที่เป็นโมฆะสองตัวใดๆ(ไม่ว่าจะเป็นชนิดข้อมูลใดก็ตาม)จะเปรียบเทียบได้เป็นค่าเท่ากันเสมอ[2]

ดูเพิ่ม

[แก้]

อ้างอิง

[แก้]
  1. "CWE-476: NULL Pointer Dereference". MITRE.
  2. ISO/IEC 9899, clause 6.3.2.3, paragraph 4.