1. malloc( )
(1)調運格式
(2)例如:
double*p;
p=(double*)malloc(*sizeof(double));
通過調運malloc( )函數,向系統動态申請了5個double類型的存儲空間,一共是40B。
系統将這40B存儲空間的首位址指派給指針p,可以了解為指針p指向了一個double型的存儲單元。
(3)必須檢測傳回值的有效性,如果開辟空間失敗傳回空指針。
if(NULL==p)
{
printf("malloc error\n");
return -;
}
2.calloc( )
(1)調運格式
(2)例如:
double*p;
p=(double*)calloc(,sizeof(double));
通過調運calloc( )函數,同樣向系統動态申請了5個double型的存儲空間,并且将p 指針指向該存儲空間的首位址。
3.realloc( )
(1)調運格式
void*realloc(void*ptr,size_t size);
(2)功能:
a.若ptr==NULL,則該函數等同于malloc。
double*p;
p=(double*)realooc(NULL,);
b.擴容空間
char*ptr=malloc();
if(NULL==ptr)
return -;
char*Newptr=realloc(ptr,);
if(NULL==p)
{
printf("realloc error\n");
return -;
}
//将100位元組的空間擴容為200
**注:**Newptr和ptr有可能相等,也有可能不等,是以隻使用realloc的傳回指針。
4.動态釋放
當動态申請的存儲單元不在使用時,應将這些存儲單元釋放掉,即将存儲空間歸還給作業系統。
free(指針變量);