- ถ้าทำงานสำเร็จ โปรแกรมจะคืนพอร์ยเตอร์ ptr ที่มีขนาด size
- ถ้าไม่สามารถขยายต่อไปได้ realloc จะหาพื้นที่ใหม่ที่สามารถจองให้ได้ตามขนาดของ size จากนั้นจะคำการคัดลอกข้อมูลเก่าของ ptr ไปไว้ที่พื้นที่ใหม่ และคืนค่าพอร์ยเตอร์ ณ พื้นที่ใหม่นั้น และทำการปลดปล่อยพื้นที่เก่า free()
- ถ้า ptr เป็น NULL . realloc จะทำงานเหมือนกับ malloc
- ถ้า size = 0 . realloc จะทำการ free() พื้นที่ที่ ptr พอร์ยอยู่ และคืนค่า NULL
- ถ้าไม่สามารถขยายพื้นที่ได้ หรือไม่สามารถหาพื้นที่ใหม่ได้ realloc คืนค่า NULL และพื้นที่เก่าไม่มีการเปลี่ยนแปลง
56 การขอหน่วยความจำเพิ่ม realloc
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment