#include<stdio.h>
#include<malloc.h>
void main(){
double ***p;
p = (double ***) malloc( sizeof(*p) ); // sizeof(double **)
*p = (double **) malloc( sizeof(**p) ); // sizeof(double *)
**p = (double *) malloc( sizeof(***p) ); // sizeof(double)
***p = 3.14;
printf("&p : %pn", &p);
printf("p : %pn", p);
printf("*p : %pn", *p);
printf("**p : %pn", **p);
printf("***p : %gnn", ***p);
printf("sizeof(p) : %dn", sizeof(p));
printf("sizeof(*p) : %dn", sizeof(*p));
printf("sizeof(**p) : %dn", sizeof(**p));
printf("sizeof(***p) : %dn", sizeof(***p));
free(**p);
free(*p);
free(p);
}