00001 #include <stdio.h>
00002 #include <stdlib.h>
00003
00010 extern "C" {
00011
00024 double ***init_3d_array(int p, int q, int r)
00025 {
00026 double ***A;
00027 int i,j,k;
00028
00029 A = (double ***) malloc(p * sizeof(double **));
00030 for(i=0; i < p; i++) {
00031 A[i] = (double **) malloc(q * sizeof(double *));
00032 for(j=0; j < q; j++) {
00033 A[i][j] = (double *) malloc(r * sizeof(double));
00034 for(k=0; k < r; k++) {
00035 A[i][j][k] = 0.0;
00036 }
00037 }
00038 }
00039
00040 return A;
00041 }
00042
00043
00055 void free_3d_array(double ***A, int p, int q)
00056 {
00057 int i,j;
00058
00059 for(i=0; i < p; i++)
00060 for(j=0; j < q; j++)
00061 free(A[i][j]);
00062
00063 for(i=0; i < p; i++) free(A[i]);
00064
00065 free(A);
00066 }
00067
00068 }