free() - C語言庫函式


C庫函式 void free(void *ptr) 由calloc,malloc或realloc呼叫先前分配的回收記憶體。

宣告

以下是free()函式的宣告。

void free(void *ptr)

引數

  • ptr -- 這是用malloc,calloc的或realloc被釋放以前分配的記憶體塊的指標。如果一個空指標作為引數傳遞,不會發生任何動作

返回值

這個函式不返回任何值。

例子

下面的例子演示了如何使用free() 函式。

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char *str;

   /* Initial memory allocation */
   str = (char *) malloc(15);
   strcpy(str, "yiibai");
   printf("String = %s,  Address = %u
", str, str);

   /* Reallocating memory */
   str = (char *) realloc(str, 25);
   strcat(str, ".com");
   printf("String = %s,  Address = %u
", str, str);

   /* Deallocate allocated memory */
   free(str);
   
   return(0);
}

讓我們編譯和執行上面的程式,這將產生以下結果:

String = yiibai, Address = 355090448
String = tw511.com, Address = 355090448