Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 208
  • Last Modified:

declaring multi-dim array in functions?

I need to use a 2-dim array in the arguments of a construct
like this....

CMask::CMask(BYTE x, BYTE y, const double** array)
{
....
    m_F = array[i][j];
....

}

but when i make a call to the construct, like this...
........
double values_x[3][3];
CMask* masc_x = new CMask(3, 3, values_x);
........
it tell me that cannot convert parameter 3 from 'double [3][3]' to 'const double **
anybody can tell me what the error? and how to solve it

....
thank´s in advance,
MG
0
mguedes
Asked:
mguedes
  • 3
  • 3
1 Solution
 
stsanzCommented:
Did you try to cast the argument :
CMask* masc_x = new CMask(3, 3, (const double**)values_x);

0
 
mguedesAuthor Commented:
Yes, but when i try to use the array in the construct i receive an error because it can´t reference it(tell´me that the array is NULL)
0
 
stsanzCommented:
the parameter type is wrong. The array parameter is not equivalent to a "const double **", but to a "const double*"

Because you have a 2-dimentional array, the compiler must know at least the size of the first dimension. Declare your function this way :

CMask::CMask(BYTE x, BYTE y, double array[][3])
{
..
    m_F = array[i][j];
..

}

Now you can access it by :
double values_x[3][3];
CMask* masc_x = new CMask(3, 3, values_x);

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
stsanzCommented:
If you have to call CMask::CMask with various size arrays, and can't pass the size as a litteral, use the following form :

CMask::CMask(BYTE x, BYTE y, const double *array, int y_size)
{
 
    //m_F = array[x][y];
    m_F = *(array + x * y_size + y) ;
 

}

and use it with :
CMask* masc_x = new CMask(3, 3, (const double*)values_x,3);

Hope this helps.

0
 
mguedesAuthor Commented:
it´s not resolve my problem because i need a 2-dim array with variable dimensions.............but thank´s anyway.....if you know how to solve my problem.....tell me :o)
0
 
mguedesAuthor Commented:
ok, i have solve the problem.....with your suggestion, thank´s
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now