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

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

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

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*)表示這塊空間用來存儲int型數(shù)組。開辟了這塊空間后,可以修改這個(gè)空間中的值,例如為*p,*(p+1)做賦值操作,如果再次使用malloc函數(shù),例如再寫一個(gè) int *q=(int *)malloc(2*sizeof(int)); 此時(shí)開辟的以q為起始地址長度為2*sizeof(int)的空間是不會覆蓋p所指向的空間的。但是,如果在int *q=(int *)malloc(2*sizeof(int));之前寫一個(gè)free(p),那么,q所指向的空間則有可能覆蓋p指向的空間。所謂的free(p)操作,其實(shí)是修改p所指向的空間的標(biāo)記值,讓其可以被覆蓋。盡管執(zhí)行了free(p),p仍就指向以前的起始地址,依舊可以對*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ū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

镇沅| 平安县| 宝清县| 高台县| 侯马市| 温宿县| 思茅市| 罗山县| 乌苏市| 鹤山市| 广水市| 宁津县| 柳州市| 巩留县| 安吉县| 桐城市| 松滋市| 乡宁县| 榆林市| 长岭县| 屯昌县| 牡丹江市| 开化县| 宝坻区| 溧水县| 贵州省| 乌兰察布市| 会同县| 旺苍县| 察雅县| 平山县| 甘泉县| 木里| 平昌县| 桂平市| 宜都市| 绩溪县| 东阳市| 平谷区| 榆林市| 肇东市|