help converting multi-dim arrays
David Harrison
physics at utcs.UUCP
Fri Apr 5 20:45:17 AEST 1985
>From utfyzx!harrison Thu Apr 4 19:53:50 1985
Received: by utcs.UUCP (4.24/4.7) id AA12979; Thu, 4 Apr 85 19:53:46 est
Date: Thu, 4 Apr 85 19:53:46 est
From: utfyzx!harrison
Apparently-To: physics
[]
The problem: a large piece of code with a number of arrays, some
2 dimensional and a few 3 dimensional, accessed with lines like:
for(row=0; row<numrows; row++)
for(col=0; col<numcols; col++)
...data[row][col] ...
The declaration of the matrices, such as
static double data[MAXROWS][MAXCOLS]; /* just like FORTRAN */
is larger than any conceivable set of data it will be asked to
deal with, and wastes scads of memory. So, we want to convert
the code to use malloc(3C) to dynamically allocate memory and
save all that wasted space. But, we still want to access the
matrices as:
...data[row][col] ...
because: 1) we don't want to change all the code, and
2) the application makes one think in matrices and so this way
of writing the code will be much easier to maintain. Thus, we
are trying to avoid:
static double *data;
with access via stuff like:
... *(data + row*numcols + col) ...
Any ideas?
Dave Harrison, Dept. of Physics, Univ. of Toronto: ..utzoo!utcs!physics
More information about the Comp.lang.c
mailing list