If I pass an array to a function, it's actually passing a pointer and thus passing by reference. How do I pass an array to a function by value?
Thanks
===============
Code:
#include <stdio.h>
#define MAXVAL 10
void modify_array_pointer(int*, int);
void print_array(int[], int);
int main()
{
int numbers[MAXVAL];
for (int i=0; i < MAXVAL; i++)
{
numbers[i] = i;
}
print_array(numbers, MAXVAL);
modify_array_pointer(numbers, MAXVAL);
print_array(numbers, MAXVAL);
return 0;
}
void modify_array_pointer(int *p, int maxval)
{
for (int i=0; i < maxval; i++)
{
p[i]+=2;
}
}
void print_array(int A[], int maxval)
{
for (int i=0; i < maxval; i++)
{
printf("%3d , ", A[i]);
}
printf("\n");
}