新聞中心
內(nèi)存的組織方式: 堆 和 棧;
? 堆是用來(lái)存放動(dòng)態(tài)分配內(nèi)存空間;
? 棧用來(lái)存放局部數(shù)據(jù)對(duì)象、函數(shù)參數(shù)以及調(diào)用函數(shù)和被調(diào)用函數(shù)的聯(lián)系;
void *malloc(unsigned int size); ? 包含在stdlib.h頭文件中,在堆中分配一塊size大小的內(nèi)存空間;該函數(shù)會(huì)返回一個(gè)指針,指向分配的內(nèi)存空間,如果出錯(cuò),則返回NULL;
例如:
?int *pInt;
?pInt=(int*)malloc(siezeof(int));
void *calloc(unsigned n,unsigned size); ? ? 包含在stdlib.h頭文件中,功能是在內(nèi)存中動(dòng)態(tài)分配n個(gè)長(zhǎng)度為size的連續(xù)內(nèi)存空間數(shù)組;calloc函數(shù)會(huì)返回一個(gè)指針,指向動(dòng)態(tài)分配的連續(xù)內(nèi)存空間地址,當(dāng)分配空間錯(cuò)誤時(shí),返回NULL。
例如:
int * pArray;
pArray=(int *)calloc(3,sizeof(int)); ? ? ? //pArray指向的就是該數(shù)組的收地址;
void *realloc(void *ptr,size_t size); ? ? ? ? ?包含在stdlib.h頭文件中,功能是改變ptr指針指向的空間大小為size,size大小可以是任意的;返回一個(gè)指向新地址的指針,如果出現(xiàn)錯(cuò)誤,則返回NULL;
例如:
FDouble=(double*)malloc(sizeof(double));
iInt=realloc(fDouble,sizeof(int)); ? ? ? ? ? ? ? //改變一個(gè)分配的實(shí)型空間大小為整形大小;
void free(void *ptr); ? ? 功能是釋放指針ptr指向的內(nèi)存區(qū),使部分內(nèi)存區(qū)能被其它變量使用;
在使用malloc等分配內(nèi)存后,還要記得將內(nèi)存free掉,這是一個(gè)良好的編程習(xí)慣,否則會(huì)造成內(nèi)存泄漏,甚至系統(tǒng)崩潰;
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:c語(yǔ)言內(nèi)存管理總結(jié)-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://www.dlmjj.cn/article/dpiesi.html