C++ arrays as parameters, subscript vs. pointer
- by awshepard
Alright, I'm guessing this is an easy question, so I'll take the knocks, but I'm not finding what I need on google or SO.  I'd like to create an array in one place, and populate it inside a different function.
I define a function:
void someFunction(double results[])
{
    for (int i = 0; i<100; ++i)
    {
       for (int n = 0; n<16; ++n) //note this iteration limit
       {
           results[n] += i * n;
       }
    }
}
That's an approximation to what my code is doing, but regardless, shouldn't be running into any overflow or out of bounds issues or anything.  I generate an array:
double result[16];
for(int i = 0; i<16; i++)
{
    result[i] = -1;
}
then I want to pass it to someFunction
someFunction(result);
When I set breakpoints and step through the code, upon entering someFunction, results is set to the same address as result, and the value there is -1.000000 as expected.  However, when I start iterating through the loop, results[n] doesn't seem to resolve to *(results+n) or *(results+n*sizeof(double)), it just seems to resolve to *(results).  What I end up with is that instead of populating my result array, I just get one value.  What am I doing wrong?