ในภาษา C ทั้ง Structure และ Array ถูกใช้เป็นคอนเทนเนอร์สำหรับชนิดข้อมูล กล่าวคือ ทั้งสองโครงสร้างสามารถจัดเก็บข้อมูลและดำเนินการต่างๆ ได้
จากการทำงานภายใน (Internal Implementation) นี่คือความแตกต่างพื้นฐานระหว่างทั้งสอง:
| ลำดับ | หัวข้อ | Structure | Array |
|---|---|---|---|
| 1 | นิยาม | Structure เป็นโครงสร้างข้อมูลที่ใช้เป็นคอนเทนเนอร์ ซึ่งสามารถจัดเก็บตัวแปรที่มีชนิดข้อมูลต่างกันได้ | Array เป็นชนิดหนึ่งของโครงสร้างข้อมูลที่ใช้เป็นคอนเทนเนอร์ ซึ่งจัดเก็บตัวแปรที่มีชนิดข้อมูลเดียวกันเท่านั้น ไม่รองรับตัวแปรหลายชนิดข้อมูล |
| 2 | การจัดสรรหน่วยความจำ | การจัดสรรหน่วยความจำสำหรับข้อมูลใน Structure ไม่จำเป็นต้องอยู่ในตำแหน่งหน่วยความจำที่ติดกัน | ใน Array ข้อมูลจะถูกจัดเก็บในหน่วยความจำแบบติดกัน (Contiguous) หมายถึงจัดสรรบล็อกหน่วยความจำที่มีที่อยู่ติดกัน |
| 3 | การเข้าถึงข้อมูล | ต้องใช้ชื่อของสมาชิก (Member Name) เพื่อเข้าถึงข้อมูลใน Structure | ใน Array เข้าถึงข้อมูลได้ผ่านดัชนี (Index) |
| 4 | Pointer | Structure ไม่มีแนวคิด Pointer ภายในโดยตรง | Array ใช้ Pointer ภายในซึ่งชี้ไปยังสมาชิกแรกของ Array เสมอ |
| 5 | การสร้างอินสแตนซ์ | สามารถสร้างอ็อบเจ็กต์ของ Structure หลังจากการประกาศได้ในภายหลังของโปรแกรม | ไม่สามารถสร้างอ็อบเจ็กต์ของ Array หลังจากการประกาศได้ |
| 6 | ชนิดข้อมูล | รองรับตัวแปรหลายชนิดข้อมูล | รองรับเฉพาะตัวแปรที่มีชนิดข้อมูลเดียวกันเท่านั้น |
| 7 | ประสิทธิภาพ | ช้ากว่า Array เนื่องจากเป็น User-defined data type การเข้าถึงและค้นหาข้อมูลช้ากว่า | เร็วกว่า Structure การเข้าถึงและค้นหาข้อมูลมีประสิทธิภาพดีกว่า |