1、函數的原型:
void *malloc(sizt_t size);
void *calloc(size_t numElements,size_t sizeOfElement);
2、函數的聲明與頭檔案
#include <malloc.h>
void *malloc(int size);
3、函數的嗲用:
//功能:傳回類型為 int* 類型(整數型指針),配置設定大小為 sizeof(int) * 10
int *p;
p=(int *)malloc(sizeof(int)*10);
p=(int *)calloc(10,size(int));
p=new int[10];
4、差別:
malloc配置設定的動态記憶體,不會初始化配置設定的記憶體空間,使用malloc需要初始化記憶體空間。否則,當配置設定的記憶體空間有曆史值時,程式可能會出現問題。
colloc配置設定的動态記憶體,會初始化記憶體空間,如為整數型和字元型的元素配置設定記憶體将初始化為0,如果為指針類型的元素配置設定記憶體則初始化空指針。
5、補充:
一次malloc的記憶體虛拟位址是連續的,實體位址不連續,連續多次malloc的記憶體之間不一定連續。
ew是在堆上配置設定記憶體空間的,而作業系統用雙向連結清單來維護堆空間,是以你一次new操作配置設定到的一塊記憶體是連續的,而兩次new操作配置設定到的兩塊記憶體可能就不在一起了。