funciones con parámetros y funciones con punteros (SOLUCIONADO)

Hola.
El error que realmente subyace (al menos a mí me aparece si coloco la función antes del setup) es este:

 invalid conversion from 'const int*' to 'int*'

Lo que ocurre es que, aunque de hecho parece que foo no toquetea los valores de arr, tu función foo no lo ha "prometido", y el compilador, que es muy mal pensado, teme que si le envía un array de valores constantes, éstos puedan ser "mancillados" por tu función.
Prueba a poner la función antes de su uso, o al menos declarar antes su prototipo, y declarar el parámetro de foo como const int *arr o como const int arr[]. Así el compilador debería fiarse de tus intenciones.