#include<stdlib.h>voidmain(void){int i, j;double*a =NULL,*b =NULL,**c =NULL;double*d =NULL,*e =NULL,*f =NULL;// 采用二级指针创建动态二维数组的例子// malloc
a =(double*)malloc(10*sizeof(double));
b =(double*)malloc(20*sizeof(double));
c =(double**)malloc(30*sizeof(double*));if(a ==NULL|| b ==NULL|| c ==NULL){free(a); a =NULL;free(b); b =NULL;free(c); c =NULL;}for(i =0; i <30; i++){
c[i]=(double*)malloc(40*sizeof(double));if(c[i]==NULL){for(j =0; j < i; j++){free(c[j]); c[j]=NULL;}free(c); c =NULL;free(a); a =NULL;free(b); b =NULL;}}// do something// freefree(a); a =NULL;free(b); b =NULL;for(i =0; i <30; i++){free(c[i]); c[i]=NULL;}free(c); c =NULL;// 采用一级指针创建动态二维数组的例子// malloc
d =(double*)malloc(10*sizeof(double));
e =(double*)malloc(20*sizeof(double));
f =(double*)malloc(30*40*sizeof(double));if(d ==NULL|| e ==NULL|| f ==NULL){free(d); d =NULL;free(e); e =NULL;free(f); f =NULL;}// do something// freefree(d); d =NULL;free(e); e =NULL;free(f); f =NULL;}