new的过程说明:
获得一块内存空间、调用构造函数、返回正确的指针。
初始化:
int *a = new int;
float *a = new float(2.3333);
char *a = new char[10];
二维数组:
//列值固定
const int MAXCOL = 3;
int row;
cin >> row;
//申请一维数据并将其转成二维数组指针
int* pp_arr = new int[row * MAXCOL];
int(*p)[MAXCOL] = (int(*)[MAXCOL])pp_arr;
//此时p[i][j]就可正常使用
cin>>row>>col;
int *p = new int[row*col]; // 这种是当成一维数组连续开辟的
for (int i = 0; i < row; i++)
for (int j = 0; j < col; j++)
p[i * (row + 1) + j] = 0; // 如此访问
网友评论