眾所周知,創建一維動態數組很容易,使用下面的代碼便可以輕松創建
int *Array=new int[10];//Add some code here;delete [] Array;但是,如果遇到動態的二維數組應當如何創建呢?這里給出3中方法: 方法一:用一維數組去模仿二維數組,由于無論何種類型的動態數組,其在內存中都是線性的,所以可以用一維數組去模擬。 優點:處理簡單,加上一個轉換函數就可以實現,管理容易。 缺點:不直觀。
int length,width;int *Array=new int [length*width];//Add some code heredelete Array;方法二:先創建一排指針,再依次申請內存。 優點:較為直觀,管理方便。 缺點:必須知道行數或列數。
int width;int *Pointer[10];for(int i=0;i<10;i++){ Pointer[i]=new int [width];}//Add some code herefor(int i=0;i<10;i++){ delete [] Pointer[i];}方法三:用二級指針申請一維動態指針數組,再一次申請。(該過程申請到的內存單元連續) 優點:直觀,使用方便。 缺點:創建、銷毀都比較麻煩,需要逐層銷毀。
int length,widthlint **Poniter=new int*[length];for(int i=0;i<length;i++){ Pointer[i]=new int[width];}//Add some code here;for(int i=0;i<10;i++){ delete [] Poniter[i];}delete [] Pointer;新聞熱點
疑難解答