程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言內存分配函數,分配函數

C語言內存分配函數,分配函數

編輯:關於C語言

C語言內存分配函數,分配函數


c語言標准庫提供了3個內存分配的函數,都包含在頭文件<stdlib.h>中


 

1、malloc

函數原型

 

void *malloc( size_t size );

 

參數:要分配內存大小的字節數

返回值:指向該內存地址的指針,若錯誤返回NULL

功能:分配一塊指定大小的內存空間。

細節:該內存空間連續,且為空間,需要用free()函數手動釋放,空間內為垃圾數據。

 

2、calloc

函數原型

 

void *calloc( size_t num, size_t size );

 

參數:1、要分配內存的數量  2、每塊內存的大小的字節數

返回值:指向該內存地址的指針,若錯誤返回NULL

功能:分配一塊指定大小的內存空間。

細節:該內存空間連續,且為空間,需要用free()函數手動釋放,空間內數據被初始化為0。

 

3、realloc

函數原型:

 

void *realloc( void *ptr, size_t size );

 

參數:1、要改變空間大小的對象  2、將原本的空間大小改為size

返回值:指向改變後內存地址的指針,若錯誤返回NULL

功能:改變一塊分配空間的大小。

細節:該內存空間連續,且為空間,需要用free()函數手動釋放。

   size可以大於原空間大小,也可以小於原空間大小。大於原空間時,若在原空間後面有足夠的內存分配,則直接在擴充空間大小。參數1和返回值相等。

   若不夠,則另尋一塊足夠大的連續內存地址,將原地址的內容復制到新地址中。回收原空間,並返回新地址的指針。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved