C語言的動態(tài)內(nèi)存分配實(shí)例。代碼如下:
為雙流等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及雙流網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站制作、雙流網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
#include
#include
main(){
//申請可以存放5個元素的int類型值的堆內(nèi)存
int* p = malloc(sizeof(int)*5);
//c for循環(huán) 循環(huán)變量的聲明要放到for的外面 先聲明再使用
int i;
for(i= 0;i<5;i++){
*(p+i) = i;
}
printf("*(p+1)=%d\n",*(p+1));
printf("*(p+2)=%d\n",*(p+2));
printf("*(p+2)=%d\n",*(p+2));
printf("*(p+2)=%d\n",*(p+2));
free(p);//重點(diǎn)理解
printf("*(p+1)=%d\n",*(p+1));
printf("*(p+2)=%d\n",*(p+2));
system("pause");
}
總結(jié)
1、c 堆內(nèi)存的大小 取決于當(dāng)前系統(tǒng)的狀態(tài) 堆內(nèi)存 不連續(xù)的
2、java申請堆內(nèi)存使用new
3、 malloc memory allocation 申請堆內(nèi)存 相當(dāng)于java的new
4、 接受參數(shù) 申請堆內(nèi)存的大小
5、返回值 申請到的堆內(nèi)存的首地址
6、java的堆內(nèi)存回收由垃圾回收處理
7、c的堆內(nèi)存需要程序員手動回收,這個需要重點(diǎn)理解。
8、free 釋放通過malloc申請的堆內(nèi)存 當(dāng)前的內(nèi)存可以被其它程序使用