C++ new運算子

來源:互聯網
上載者:User

標籤:let   指標   更改   建立對象   msdn   運算子   樣本   對象   zh-cn   

new 分配的資料類型:內建資料類型、自訂資料類型。

如果不成功,則 new 將返回零或引發異常;編寫自訂異常處理常式並調用 _set_new_handler運行庫函數(以您的函數名稱作為其參數),可更改此預設行為。

new 為 C++ 類對象分配記憶體時,將在分配記憶體後調用對象的建構函式。僅當類具有預設建構函式時,new 運算子才會建立對象的數組。

分配多維陣列時,除第一個維度之外的所有維度必須是計算結果為正值的常量運算式;最左側的數組維度可以是計算結果為正值的任何錶達式。new 運算子分配數組時,第一個維度可為零 ,此時new 運算子返回一個唯一指標。

例子:分配一個二維數組,然後釋放,數組的大小為 zhm x 10

    1、char (*p)[10] = new char[zhm][10]; delete[] p;  

    2、int m=2,n=3; int **p = new int*[m]; for(int i=0;i<m;i++)  p[i] = new int[n];  ... for(int i=0;i<m;i++) delete[] p[i]; delete[] p;

    3、如果 2 這樣寫:int **p ; p =new int* [m] ;  for(int i=0;i<m;i++)  p[i] = new int[n]; 萬萬不可寫成: (*p) =new int [m] ;

 變數不能包含 const、volatile、類聲明或枚舉聲明。 非法:volatile char * p = new volatile char[10];

new 運算子不會分配參考型別,因為這些類型不是對象。

new 運算子無法用於分配函數,但可用於分配指向函數的指標。 下面的樣本 為 返回整數的函數 分配一個包含 7 個指標的數組,然後釋放。

    int (**p)() = new (  int (*[7])()   ); delete *p;

    

 

C++ new運算子

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.