realloc使用方法

函數簡介

  原型:extern void *realloc(void *mem_address, unsigned int newsize);

 

  語法:指針名=(數據類型*)realloc(要改變內存大小的指針名,新的大小)。

 

  頭文件:#include <stdlib.h> 有些編譯器需要#include <alloc.h>,在TC2.0中可以使用alloc.h頭文件

 

  功能:先按照newsize指定的大小分配空間,將原有數據從頭到尾拷貝到新分配的內存區域,而後釋放原來mem_address所指內存區域,同時返回新分配的內存區域的首地址。即重新分配存儲器塊的地址。

 

  返回值:如果重新分配成功則返回指向被分配內存的指針,否則返回空指針NULL。 

 

  注意:這裏原始內存中的數據還是保持不變的。當內存不再使用時,應使用free()函數將內存塊釋放。

應用舉例

 

  從這個例子可以看出realloc函數的功能。

 

  1. #include<stdio.h>     
  2. #include<stdlib.h>     
  3. int main()     
  4. {     
  5.  int i;     
  6.  int *pn=(int *)malloc(5*sizeof(int));     
  7.  printf("%p\n",pn);     
  8.  for(i=0;i<5;i++)     
  9.   scanf("%d",&pn[i]);     
  10.     
  11.  pn=(int *)realloc(pn,10*sizeof(int));    
  12.     
  13.  printf("%p\n",pn);     
  14.  for(i=0;i<5;i++)     
  15.   printf("%3d",pn[i]);     
  16.  printf("\n");     
  17.  free(pn);     
  18.  return 0;     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章