二維陣列的幾種定義方法
阿新 • • 發佈:2018-12-14
以m*n舉例: 第一種方法: int **a = new int*[m]; for(int i=0; i < m; i++) a[i] = new int[n]; 第二種方法 int* a = new int[m*n]; a[i*n+j]是第i行第j列元素
第三種方法: int (*p)[n]=new int[m][n];
#include<iostream> #define pi 3 using namespace std; int main() { int *p = new int[5]; delete[] p; /***************二維陣列的定義方法***************/ //第一種 int m=3,n=4; int **m1 = new int*[m]; for (int i = 0;i < m;++i) { m1[i] = new int[n]; } for (int i = 0;i < m;++i) { delete[] m1[i]; } delete[] m1; //第二種 //(i=0,j=0)訪問m[i][j]時應該:m[i*n+j] int *m2 = new int[m*n]; delete[] m2; //第三種 記憶體如何釋放? int(*m3)[3] = new int[m][3]; delete[] m3; system("pause"); return 0; }