Hi,
I have troubles understanding the relationship between pointers (to double) and multidimensional arrays (of doubles).
I have a C++ routine that returns pointers to doubles, and a class object that I'm creating computes multidimensional arrays, because I like to think of the data as matrices.
Then when the computation is done all I have to do is to copy the array values into the location pointed by the pointer, increment it and so on.
So this is what I have:
Code:
void STDCALL FIESUB ( double *dfddis, double *dfdvel )
{
...
}
In this routine I instantiate an object of the class Field:
Code:
class msField
{
private:
double m_dfdx[6][6];
double m_dfdxdot[6][6];
public:
void getForceDerivatives(double *fddist, double *fdvel);
};
The idea being that in getForceDerivatives I would do something like this:
Code:
void msField::getForceDerivatives(double *fddist, double *fdvel)
{
// retrieves the force derivatives from the field member datas
int i, j;
for ( i = 0; i < 6; i++)
{
for ( j = 0; j < 6; j++)
{
*fddist++=m_dfdx[i][j];
*fdvel++=m_dfdxdot[i][j];
}
}
}
That function is called like this (inside of FIESUB):
Code:
rField.getForceDerivatives(dfddis, dfdvel);
The result?
Mayhem.
Obviously I am forgetting something.
Can anyone explain the relationship between pointers to double and arrays of doubles (multidimensional arrays, that is...).
Any help much appreciated!!
And72.