Well as long as you aren't changing them inside the function, you have nothing to worry about. Otherwise you can make a copy of them inside the function, and then use that:
Code:
void foo( type array[], int size )
{
type copy[ size ];
int x;
for( x = 0; x < size; x++ )
copy[ x ] = array[ x ];
...
do stuff to copy
}
The reason you actually have to make a copy here is because arrays are passed as a pointer to the first element. Whereas if you were passing a single integer around, that integer would actually be passed as a copy.
Code:
void foo( int x )
{
x++;
printf( "x is %d\n", x );
}
...
int x = 3;
printf( "x outside of foo is %d\n", x );
foo( x );
printf( "x outside of foo is %d\n", x );
Quzah.