中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

C庫中的realloc()函數及其示例

發(fā)布于:2021-02-05 14:52:20

0

547

0

C realloc() 示例 編程語言

什么是realloc()?

realloc()是C庫的功能,用于為已分配的內存塊增加更多的內存大小。C語言中重新分配的目的是擴展當前的存儲塊,同時保留原始內容。realloc()函數有助于通過malloc或calloc函數減少先前分配的內存大小。realloc代表內存的重新分配。

在C中realloc的語法:

ptr = realloc (ptr,newsize);

上面的語句在變量newsize中分配具有指定大小的新內存空間。執(zhí)行完函數后,指針將返回到存儲塊的第一個字節(jié)。新的大小可以大于或小于以前的內存。我們不能確定新分配的塊是否將指向與先前存儲塊相同的位置。C語言中的realloc函數將在新區(qū)域中復制所有先前的數據。它確保數據將保持安全。

例如:

#includeint main () {
  char *ptr;
  ptr = (char *) malloc(10);
  strcpy(ptr, "Programming");
  printf(" %s,  Address = %un", ptr, ptr);

  ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new size
  strcat(ptr, " In 'C'");
  printf(" %s,  Address = %un", ptr, ptr);
  free(ptr);
  return 0;
}

如何使用realloc()

下面的C語言程序演示了如何在C語言中使用realloc來重新分配內存。

#include <stdio.h>
#include <stdlib.h>
   int main() {
       int i, * ptr, sum = 0;
       ptr = malloc(100);
       if (ptr == NULL) {
           printf("Error! memory not allocated.");
           exit(0);
       }
       
       ptr = realloc(ptr,500);
   if(ptr != NULL)
          printf("Memory created successfullyn");
         
   return 0;

   }

C示例中的realloc結果:

Memory created successfully

每當重新分配導致操作失敗時,它都會返回空指針,并且先前的數據也將被釋放。