56 การขอหน่วยความจำเพิ่ม realloc


  • ถ้าทำงานสำเร็จ โปรแกรมจะคืนพอร์ยเตอร์ ptr ที่มีขนาด size
  • ถ้าไม่สามารถขยายต่อไปได้ realloc จะหาพื้นที่ใหม่ที่สามารถจองให้ได้ตามขนาดของ size จากนั้นจะคำการคัดลอกข้อมูลเก่าของ ptr ไปไว้ที่พื้นที่ใหม่ และคืนค่าพอร์ยเตอร์ ณ พื้นที่ใหม่นั้น และทำการปลดปล่อยพื้นที่เก่า free()
  • ถ้า ptr เป็น NULL . realloc จะทำงานเหมือนกับ malloc
  • ถ้า size = 0 . realloc จะทำการ free() พื้นที่ที่ ptr พอร์ยอยู่ และคืนค่า NULL
  • ถ้าไม่สามารถขยายพื้นที่ได้ หรือไม่สามารถหาพื้นที่ใหม่ได้ realloc คืนค่า NULL และพื้นที่เก่าไม่มีการเปลี่ยนแปลง


No comments:

Post a Comment