亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

malloc()和free()函數怎么在C++中使用

發布時間:2021-03-17 15:26:27 來源:億速云 閱讀:368 作者:Leah 欄目:編程語言

本篇文章為大家展示了malloc()和free()函數怎么在C++中使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

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

   關于malloc和free這兩個函數,malloc的用法示例:int *p=(int *)malloc(2*sizeof(int)); 它表示在堆中開辟一塊大小為2*sizeof(int)的一塊內存空間,p指向這塊內存空間的起始地址,malloc前面的(int*)表示這塊空間用來存儲int型數組。開辟了這塊空間后,可以修改這個空間中的值,例如為*p,*(p+1)做賦值操作,如果再次使用malloc函數,例如再寫一個 int *q=(int *)malloc(2*sizeof(int)); 此時開辟的以q為起始地址長度為2*sizeof(int)的空間是不會覆蓋p所指向的空間的。但是,如果在int *q=(int *)malloc(2*sizeof(int));之前寫一個free(p),那么,q所指向的空間則有可能覆蓋p指向的空間。所謂的free(p)操作,其實是修改p所指向的空間的標記值,讓其可以被覆蓋。盡管執行了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; 
}

運行結果:

malloc()和free()函數怎么在C++中使用

補充:

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

上述內容就是malloc()和free()函數怎么在C++中使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇巴县| 绥宁县| 盘山县| 翼城县| 黑河市| 平度市| 潜山县| 定兴县| 宁乡县| 漠河县| 贞丰县| 郓城县| 库尔勒市| 会同县| 固安县| 岗巴县| 桃园市| 新昌县| 梓潼县| 高陵县| 醴陵市| 郯城县| 兴业县| 普定县| 晴隆县| 南漳县| 上饶市| 永定县| 涞水县| 安塞县| 宜阳县| 永嘉县| 探索| 德保县| 宁国市| 密云县| 庆阳市| 平原县| 高雄县| 湘潭市| 陇西县|