malloc,calloc,realloc等記憶體分配函式區別
三個函式的宣告分別是:
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* calloc(size_t nelem, size_t elsize);
都在stdlib.h函式庫內
它們的返回值都是請求系統分配的地址,如果請求失敗就返回NULL
malloc用於申請一段新的地址,引數size為需要記憶體空間的長度,如:
char* p;
p=(char*)malloc(20);
calloc與malloc相似,引數elsize 為申請地址的單位元素長度,nelem為元素個數,如:
char* p;
p=(char*)calloc(20, sizeof(char));
這個例子與上一個效果相同
realloc是給一個已經分配了地址的指標重新分配空間,引數ptr為原有的空間地址,newsize是重新申請的地址長度
如:
char* p;
p=(char*)malloc(sizeof(char)*20);
p=(char*)realloc(p,sizeof(char)*40);
注意,這裡的空間長度都是以位元組為單位。
C語言的標準記憶體分配函式:malloc,calloc,realloc等。
malloc與calloc的區別為1塊與n塊的區別:
malloc呼叫形式為(型別*)malloc(size):在記憶體的動態儲存區中分配一塊長度為“size”位元組的連續區域,返回該區域的首地址。
calloc呼叫形式為(型別*)calloc(n,size):在記憶體的動態儲存區中分配n塊長度為“size”位元組的連續區域, 每一位都初始化為零,返回首地址。
realloc呼叫形式為(型別*)realloc(*ptr,size):將ptr記憶體大小增大到size。
free的呼叫形式為free(void*ptr):釋放ptr所指向的一塊記憶體空間。
C++中為new/delete函式。
轉載至http://blog.csdn.net/mobidogs/article/details/1552732
相關文章
- 【C/C++】記憶體分配函式:malloc,calloc,realloc,_allocaC++記憶體函式
- malloc、calloc和realloc區別
- malloc、calloc、realloc的區別
- malloc,calloc,realloc及動態開闢記憶體常見錯誤記憶體
- C語言malloc()函式:動態分配記憶體空間C語言函式記憶體
- 記憶體動態分配與釋放,malloc和new區別記憶體
- 實現和除錯 Malloc、Free、Calloc 和 Realloc 的快速教程除錯
- 核心記憶體分配常用函式使用記憶體函式
- 記憶體分配詳解 malloc, new, HeapAlloc, VirtualAlloc,GlobalAlloc記憶體
- Golang記憶體分配內建函式之new函式Golang記憶體函式
- 簡單理解動態記憶體分配和靜態記憶體分配的區別記憶體
- javascript堆疊記憶體分配的區別JavaScript記憶體
- 關於c語言記憶體分配,malloc,free,和段錯誤,記憶體洩露C語言記憶體洩露
- 記憶體分配策略中,堆和棧的區別記憶體
- 函式指標、回撥函式、動態記憶體分配、檔案操作函式指標記憶體
- Java記憶體區域與分配策略Java記憶體
- Linux記憶體管理:MallocLinux記憶體
- malloc函式函式
- 函式中的指標分配的記憶體怎麼釋放函式指標記憶體
- 共享記憶體函式記憶體函式
- C/C++使用malloc為結構體陣列分配記憶體(及free釋放記憶體)的三種方法C++結構體陣列記憶體
- JavaScript記憶體分配JavaScript記憶體
- JVM記憶體分配JVM記憶體
- java記憶體分配Java記憶體
- 4.非連續式記憶體分配記憶體
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- malloc和new的區別,new和operator new的區別,分配器介紹
- JVM 記憶體模型 記憶體分配,JVM鎖JVM記憶體模型
- 常用記憶體操作函式記憶體函式
- struct和malloc記憶體互轉例子Struct記憶體
- 小計:引用型別記憶體分配問題型別記憶體
- [CareerCup] 13.9 Aligned Malloc and Free Function 寫一對申請和釋放記憶體函式Function記憶體函式
- 探索iOS記憶體分配iOS記憶體
- Java 記憶體分配策略Java記憶體
- java jvm 記憶體分配JavaJVM記憶體
- [C++]記憶體分配C++記憶體
- 動態記憶體分配記憶體
- C++ 函式 realloc 的用法C++函式