二维指针创建堆级别的二维数组:
指针的指针创建也是通过行然后到列这样的顺序创建的;
例如:
int **pp = new int *[行数];
for (int i = 0; i < 行数; ++i) {
pp[i] = new int[每行的列数];
}
int **p = (int **)malloc(sizeof(int *) * 行数);'
for (int i = 0; i < 行数; ++i) {
pp[i] = (int *)malloc(sizeof(int) * 每行的列数);
}
使用过程和使用二维数组一模一样;
释放二维数组:
// 先释放每行的列,最后释放行数
for (int i = 0; i < 行数; ++i) {
delete [] pp[i];
}
delete []pp;// 释放行
pp = 0;
for (int i = 0; i < 行数; ++i) {
free(pp[i]);
}
free(pp);// 释放行;
pp = 0;