1.动态分配一维数组
int *p = (int *)malloc(sizeof(int)*10); //或者int * p = new int[10];
int *p = (int *)malloc(sizeof(int)*10); //或者int *p = new int[10]; int (* pp)[5] = (int (*)[5])p;
int *p = (int *)malloc(sizeof(int)*12); //或者 int *p = new int[12] int (* pp)[2][2] = (int (*)[2][2])p;
a.一维指针数组
1.数组在栈上 for (int i = 0; i<10; i++) { b[i] = new int; } for (int j = 0; j<10; j++) { delete b[j]; } // 2.数组在堆上 int ** p = new int * [10]; // 不能写成 new (int *) [10]; for (int i = 0; i<10; i++) { b[i] = new int; } for (int j = 0; j<10; j++) { delete b[j]; } delete []p;//重要
b.二维指针数组
int *b[4][5]; // 10个指针数组,内容为指针。 // 1.数组在栈上 // 2.数组在堆上 int **p = new int * [20]; int* (* pp)[5] = (int* (*)[5])p; // 指向二维指针数组的指针
原文地址:http://blog.csdn.net/cauchyweierstrass/article/details/44024435