最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 中malloc()和free()函數(shù)的理解

 更新時(shí)間:2017年08月04日 16:56:45   作者:小小白楊123  
這篇文章主要介紹了C++ 中malloc()和free()函數(shù)的理解的相關(guān)資料,這里提供用法示例幫助大家理解這部分知識(shí),需要的朋友可以參考下

C++ 中malloc()和free()函數(shù)的理解

   關(guān)于malloc和free這兩個(gè)函數(shù),malloc的用法示例:int *p=(int *)malloc(2*sizeof(int)); 它表示在堆中開辟一塊大小為2*sizeof(int)的一塊內(nèi)存空間,p指向這塊內(nèi)存空間的起始地址,malloc前面的(int*)表示這塊空間用來存儲(chǔ)int型數(shù)組。開辟了這塊空間后,可以修改這個(gè)空間中的值,例如為*p,*(p+1)做賦值操作,如果再次使用malloc函數(shù),例如再寫一個(gè) int *q=(int *)malloc(2*sizeof(int)); 此時(shí)開辟的以q為起始地址長度為2*sizeof(int)的空間是不會(huì)覆蓋p所指向的空間的。但是,如果在int *q=(int *)malloc(2*sizeof(int));之前寫一個(gè)free(p),那么,q所指向的空間則有可能覆蓋p指向的空間。所謂的free(p)操作,其實(shí)是修改p所指向的空間的標(biāo)記值,讓其可以被覆蓋。盡管執(zhí)行了free(p),p仍就指向以前的起始地址,依舊可以對(duì)*p,*(p+1)賦值,并且可訪問他們(例如輸出)。

代碼如下:

int main(){ 
  int *p=(int *)malloc(2*sizeof(int)); 
  free(p); 
  *p=1; 
  *(p+1)=2; 
  cout<<p<<endl<<(p+1); 
  cout<<endl; 
  cout<<*p<<endl<<*(p+1); 
 
  int *q=(int *)malloc(2*sizeof(int)); 
  cout<<endl<<q<<endl<<(q+1); 
  cout<<endl<<*q<<endl<<*(q+1); 
  return 1; 
} 

運(yùn)行結(jié)果:

補(bǔ)充:

int *p=(int *)malloc(2*sizeof(int)); 若要釋放這段空間,必須free(p),只是單單想釋放部分空間,例如free(p+1)是不允許的。

以上就是C++ 中malloc()和free()函數(shù)的實(shí)例詳解,如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論

定日县| 柳林县| 津南区| 金阳县| 司法| 子长县| 武强县| 萝北县| 武义县| 盐源县| 治多县| 舒城县| 隆子县| 中阳县| 峨山| 永济市| 扎兰屯市| 井冈山市| 石台县| 思南县| 肇东市| 凉山| 庆阳市| 自治县| 吉木萨尔县| 泰兴市| 余江县| 乌恰县| 绥滨县| 朝阳县| 博罗县| 九龙县| 于都县| 玛多县| 商都县| 迁西县| 金湖县| 卫辉市| 江达县| 海淀区| 新巴尔虎右旗|