欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

運行結果:

補充:

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

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

相關文章

  • 詳解安卓系統(tǒng)中的Android.mk文件

    詳解安卓系統(tǒng)中的Android.mk文件

    這篇文章主要介紹了詳解安卓系統(tǒng)中的Android.mk文件,該文件用來告訴系統(tǒng)關于源代碼的編譯,需要的朋友可以參考下
    2015-07-07
  • C++中引用處理的基本方法

    C++中引用處理的基本方法

    引用不是新定義了一個變量,而是給已經(jīng)存在的變量取了一個別名,編譯器不會為引用變量開辟內存空間,他和他引用的變量共用一塊內存空間,下面這篇文章主要給大家介紹了關于C++中引用處理的基本方法,需要的朋友可以參考下
    2022-12-12
  • 一起來了解一下C++的結構體?struct

    一起來了解一下C++的結構體?struct

    這篇文章主要為大家詳細介紹了C++的結構體struct,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 使用c++實現(xiàn)OpenCV繪制旋轉矩形圖形

    使用c++實現(xiàn)OpenCV繪制旋轉矩形圖形

    這篇文章主要給大家介紹了使用c++實現(xiàn)OpenCV繪制圖形旋轉矩形的方法案例,通過圖文及代碼形式進行了詳細的描述,有需要的朋友可以參考下,希望可以有所幫助
    2021-08-08
  • C語言之單向鏈表詳解及實例代碼

    C語言之單向鏈表詳解及實例代碼

    這篇文章主要介紹了C語言之單向鏈表的相關資料,及實例代碼,幫助大家學習參考,,需要的朋友可以參考下
    2016-09-09
  • C++超詳細分析type_traits

    C++超詳細分析type_traits

    C++的type_traits是一套純粹編譯期的邏輯,可以進行一些類型判斷、分支選擇等,主要用于模板編程。使用type_traits并不難,但是我們希望能夠更加深入了解其實現(xiàn)方式,與此同時,可以更進一步體驗C++的模板編程
    2022-08-08
  • c病毒程序原理分析(防范病毒 c語言小病毒示例)

    c病毒程序原理分析(防范病毒 c語言小病毒示例)

    這篇文章主要介紹了病毒程序原理,寫個小程序做演示,大家可以參考這個以防中相似C病毒
    2013-12-12
  • c語言?數(shù)據(jù)存儲與原碼?反碼?補碼詳細解析

    c語言?數(shù)據(jù)存儲與原碼?反碼?補碼詳細解析

    不知道你是否和我一樣好奇,學習編程語言的同時想,各個數(shù)據(jù)類型是怎樣在我們的內存中儲存的呢,如果你仔細深入了解的話,你會了解其中的樂趣,了解科學家們的偉大,了解c語言
    2022-02-02
  • 使用C++17實現(xiàn)JSON庫設計思路示例全解

    使用C++17實現(xiàn)JSON庫設計思路示例全解

    這篇文章主要為大家介紹了使用C++17實現(xiàn)JSON庫設計思路示例全解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • C++賦值函數(shù)+移動賦值函數(shù)+移動構造函數(shù)詳解

    C++賦值函數(shù)+移動賦值函數(shù)+移動構造函數(shù)詳解

    這篇文章主要介紹了C++賦值函數(shù)+移動賦值函數(shù)+移動構造函數(shù)詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08

最新評論