Okies Here is the memory allocation routine.
Code:
/***********************************************/
/* ALLOCATE MEMORY */
/***********************************************/
double **Malloc2Dd(int nx,int ny)
{
double **p;
int i;
p = (double **)malloc(nx*sizeof(double*));
if(!p) return NULL;
for(i=0; i<nx; i++)
{
p[i] =(double*)malloc(ny*sizeof(double));
if(!(p[i])) return NULL;
}
return p;
}
void free2Dd(double **p, int nx)
{
int i;
for(i=0; i<nx; i++)
{
free( p[i] );
}
free(p);
}
In MAIN the malloc and loading of data is called as:
Code:
/* ALLOCATE MEMORY */
data = Malloc2Dd(nx, ny);
if(!data)
{
fprintf(stderr,"not enough memory!\n");
exit(1);
}
/* LOAD DATA */
fpIN =fpOpenDataFile(argv[1]);
nRead2DDataFromFile(fpIN, data, nx,ny);
nCloseDataFile(fpIN);