3d_array.cc

Go to the documentation of this file.
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 } /* extern "C" */

Generated on Wed Feb 13 16:35:39 2008 for PSI by  doxygen 1.5.4