More Related Content
Similar to งานทำ Blog บทที่ 9 (2)
Similar to งานทำ Blog บทที่ 9 (2) (12)
More from รัสนา สิงหปรีชา
More from รัสนา สิงหปรีชา (20)
งานทำ Blog บทที่ 9 (2)
- 2. ตัวแปรพอยน์เตอร์ (Pointer) เป็นตัวแปรพิเศษในภาษา C มีหน้าที่
เก็บตาแหน่งที่อยู่ (Address) ของตัวแปรอื่น ๆ ที่อยู่ในหน่วยความจา ซึ่ง
ต่างจากตัวแปรทั่วไปที่ทาหน้าที่เก็บข้อมูล โดยมีรูปแบบการประกาศใช้
งานดังนี้
type *name;
โดยที่ type เป็นชนิดของตัวแปรพอยน์เตอร์ โดยพิจารณาว่าจะประกาศ
ตัวแปรพอยน์เตอร์เพื่อใช้เก็บที่อยู่ของตัวแปรชนิดใด
* เป็นเครื่องหมายที่กาหนดให้ตัวแปรที่ประกาศเป็นพอยน์เตอร์
- 7. การจัดการพื้นที่หน่วยความจาแบบไดนามิค
(Dynamic Memory Allocation)
การจั ด การพื้ น ที่ ห น่ ว ยความจ าแบบไดนามิ ค
(Dynamic Memory Allocation) คือ การจัดการพื้นที่
หน่วยความจาโดยผู้เขียนโปรแกรมนั่นเอง เพราะใน
บางครั้งการที่คอมพิวเตอร์จัดการหน่วยความจานั้น
อาจเกิดปัญ หาในกรณีการจองพื้นที่หน่ วยความจา
แบบคงที่ แล้ ว คอมพิ ว เตอร์ ไ ม่ ส ามารถจั ด สรร
หน่วยความจาให้ได้ ทาให้การทางานของโปรแกรม
อาจเกิดความผิดพลาดขึ้นได้
- 9. 1. ฟังก์ชันสาหรับการจองพื้นที่หน่วยความจา
ได้แก่ ฟังก์ชัน malloc และฟังก์ชัน calloc ซึ่งมีรูปแบบการใช้งานดังนี้
void *malloc(size_t num_bytes);
โดยที่ size_t num_bytes เป็นขนาดของหน่วยความจาที่ต้องการจองมี
หน่วยเป็นไบต์ (Byte)
กรณีที่จองหน่วยความจาได้สาเร็จ ฟังก์ชัน malloc จะคืนค่ากลับมาใน
ลักษณะเป็นตัวเลขไม่สามารถเดาได้ และกรณีที่จองหน่วยความจาไม่สาเร็จ
ฟังก์ชัน malloc จะคืนค่า NULL กลับมา
- 10. void *calloc(size_t num_elements, size_t element_size);
โดยที่ size_t num_elements เป็นจานวนที่ต้องการจองในหน่วยความจา
size_t element_size เป็นขนาดของหน่วยความจาที่ต้องการจอง
แต่ละตัวมีหน่วยเป็นไบต์
กรณีที่จองหน่วยความจาได้สาเร็จ ฟังก์ชัน calloc จะคืนค่ากลับมาใน
ลักษณะเป็น 0 และกรณีที่จองหน่วยความจาไม่สาเร็จ ฟังก์ชัน calloc จะ
คืนค่า NULL กลับมา
- 12. 3. ฟังก์ชันสาหรับเปลี่ยนแปลงพื้นที่หน่วยความจา
ได้แก่ ฟังก์ชัน realloc ซึ่งมีรูปแบบการใช้งานดังนี้
void *realloc(void *stge_ptr, size_t element_size);
โดยที่
void *stge_ptr
เป็นตัวแปรพอยน์เตอร์ที่ชี้ไปยังค่าตาแหน่งที่อยู่ใน
หน่วยความจาซึ่งเป็นผลมาจากฟังก์ชัน calloc และ
malloc
size_t element_size เป็นขนาดของหน่วยความจาที่ต้องการจองแต่ละตัว
มีหน่วยเป็นไบต์
- 13. ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา สานักพิมพ์ IDC PREMIER