# 2d array call in a function

Discussion in 'C++' started by axcytz@gmail.com, Oct 23, 2013.

1. ### Guest

Hi all,

I have a 2d array that I declared as:

int array[3][3] ={{1,2,3},{1,3,5},{3,2,5}};
int InitialArray[3] = {..};
int Result;

I also use this in a function:

int Calculate(int myarray[], int array[][3], int result)
{
for(int i=0; i<3 ;i++)
{
for(int j=0; j<i+1 ;j++)
result += array[myarray][myarray[j]];
}
}

In main, I call it as

Calculate(InitialArray, array, Result);

I get some errors because of the 2d array in function. How should i fix this?

expected primary-expression before â]â token
array bound is not an integer constant

, Oct 23, 2013

2. ### Barry SchwarzGuest

On Tue, 22 Oct 2013 18:15:10 -0700 (PDT), wrote:

>Hi all,
>
>I have a 2d array that I declared as:
>
>int array[3][3] ={{1,2,3},{1,3,5},{3,2,5}};
>int InitialArray[3] = {..};
>int Result;
>
>I also use this in a function:
>
>int Calculate(int myarray[], int array[][3], int result)
>{
> for(int i=0; i<3 ;i++)
> {
> for(int j=0; j<i+1 ;j++)
> result += array[myarray][myarray[j]];
> }
>}
>
>In main, I call it as
>
>Calculate(InitialArray, array, Result);
>
>I get some errors because of the 2d array in function. How should i fix this?
>
>expected primary-expression before â]â token
>array bound is not an integer constant

It would help a whole bunch if you posted your actual code (use cut
and paste, do not retype) and the complete text of the error message.
You might also mention which compiler you are using.

What happens if you put the actual first dimension in the second
parameter?
What happens if you change the second parameter to the equivalent
int(*array)[3]?

--
Remove del for email

Barry Schwarz, Oct 23, 2013