C ทำงานห้องสมุด - realloc ()
C ห้องสมุดมาตรฐาน - <stdlib.h>
ลักษณะ
Cทำงานห้องสมุดโมฆะ * realloc (void * PTR, ขนาด size_t) ขนาดของบล็อกหน่วยความจำที่จะลองก่อนที่จะเรียกจุด mallocหรือcallocปรับมอบหมายPTR
คำแถลง
นี่คือ () ฟังก์ชัน realloc คำสั่ง
void *realloc(void *ptr, size_t size)
พารามิเตอร์
- PTR - ตัวชี้ไปจัดสรรใหม่บล็อกหน่วยความจำหน่วยความจำก่อนที่จะบล็อกหน่วยความจำจะถูกจัดสรรหน่วยความจำโดยการเรียก malloc, calloc หรือ realloc ของหากตัวชี้โมฆะได้รับมอบหมายบล็อกใหม่ของหน่วยความจำและฟังก์ชั่นกลับชี้ไปมัน
- ขนาด - ขนาดใหม่ของบล็อกหน่วยความจำในไบต์ถ้าขนาดคือ 0 และ PTR ชี้ไปยังบล็อกหน่วยความจำที่มีอยู่บล็อกของหน่วยความจำที่ชี้ไปตาม PTR มันถูกปล่อยออกมาและส่งกลับตัวชี้โมฆะ
ราคาย้อนกลับ
ฟังก์ชั่นนี้กลับชี้ไปยังหน่วยความจำขนาดจัดสรร หากคำขอล้มเหลวก็จะกลับเป็นโมฆะ
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึง realloc () ฟังก์ชั่นถูกนำมาใช้
#include <stdio.h> #include <stdlib.h> int main() { char *str; /* 最初的内存分配 */ str = (char *) malloc(15); strcpy(str, "w3cschool"); printf("String = %s, Address = %u\n", str, str); /* 重新分配内存 */ str = (char *) realloc(str, 25); strcat(str, ".cc"); printf("String = %s, Address = %u\n", str, str); free(str); return(0); }
Let 's รวบรวมและเรียกใช้โปรแกรมข้างต้นซึ่งจะส่งผลต่อไปนี้:
String = w3cschool, Address = 355090448 String = w3cschool.cc, Address = 355090448