二维数组动态空间的申请原则:申请的时候从外层往里层,逐层申请;释放的时候从里层往外层,逐层释放。工具/原料使用malloc() 和new()函数分配内存步骤/方法使用New方法,举例:const size_t DIMENSION = 10;int **pp = new int *[DIMENSION];for (int i = 0;i <DIMENSION;++i) pp[i] 展开
二维数组动态空间的申请原则:申请的时候从外层往里层,逐层申请;释放的时候从里层往外层,逐层释放。工具/原料使用malloc() 和new()函数分配内存步骤/方法使用New方法,举例:const size_t DIMENSION = 10;int **pp = new int *[DIMENSION];for (int i = 0;i <DIMENSION;++i) pp[i] = new int[DIMENSION];pp[3][5] = 40;for (int i = 0;i <DIMENSION;++i) delete pp[i];delete pp;使用malloc()函数: double **power;int i,j;power = (double **)malloc(sizeof(double) *3);for(i =0;i<3;i++) { power[i] = (double *)malloc(sizeof(double) * 10);}//.... for(i=0;i<3;i++) { free(power[i]);} free(power);其实没有必要每个循环都分配,可以一次性分配:double **power;double *subpower;int i,j;power = (double **)malloc(sizeof(double) *3);subpower = (double *)malloc(sizeof(double) * 10 * 3);for(i =0;i<3;i++) { power[i] = &subpower[i * 10];} //... free(subpower);free(power);注意事项使用new()分配资源,要使用delete()删除资源使用malloc(),对应使用free()释放资源。 收起