Ciao, io ho provato a fare questo codice


int main()
{
int a[3] = {1,2,3};
b(a);
cout << a[2] << endl;
return 0;
}
void b(int *a) {
a[2] = 5;
}


Che giustamente mi modifica il valore del 3° elemento dell'array, perchè ne passo l'indirizzo.

Però volevo sapere se c'era il modo di passarne una copia dell'array così da non modificare l'array passato, ma che quando esco dalla funzione l'array mi torna nuovamente come prima...

Qualcuno sa se si può?

Ciao