如何new與delete各種二維陣列

2021-07-04 14:41:14 字數 508 閱讀 9843

一鍵約師傅

#define m 10u

#define n 20u

#include

int main(void)

//刪除的時候是

for(int j=0;j

delete pnum;

//第二種,記憶體連續,但是不能,最推薦的一種。不能但是你可以通過[i*n+j]來計算  啊

//這種是1維陣列轉化為2維陣列

int* a = new int[m*n];

// a[i*n+j]是a[i][j]

delete a;

//第三種

//記憶體不連續,可以,是第一種情況的特例,侷限性比較大,比第一種好在能直接delete,方便

//如果你確實知道n是多少,那麼可以用這種,比如說二維陣列做形參的時候(此時記憶體連續),不是很推薦使用

int  (*pnum3)[n]  = new  int[m][n];

delete  p;

return 0;}

多型與new和delete

在使用多型時,在new和delete時一定要保持原有物件型別,不能在new時就進行強制轉換,否則會在析構時出現問題。其他時候可以使用 如下面的例子 class cbase cbase virtual void call class cinherit public cbase cinherit vir...

new與delete申請記憶體

malloc申請而來的只是記憶體,嚴格地說並不是 物件 new delete的引用就是要解決malloc帶來的問題 4個int,16個位元組 int p int malloc 16 for int i 0 i 4 i 在c 中,用new delete操作符取代malloc free 申請乙個物件 i...

new與delete的過載

include stdafx.h include using namespace std include include new 和delete的過載 new new delete delete 適用於極個別情況需要定製的時候才用的到。一般很少用 宣告可以不加 引數 void operator ne...