Antes de hacer nada mas revisa tranquilamente tu codigo, concretamente la linea 33:
    
Te oriento un poco con una pregunta: para que el ++i si estas iterando las j? 
Ahora la parte tecnica: para enviar un puntero al array tienes que recibir un puntero al primer elemento del array:    
Compara esta declaracion de funcion con la que tu tienes en el codigo. 
Y ademas supongo que te interesará reutilizar el codigo haciendo que la funcion no se limite a una matriz de 5x5, sino de nxm, solo tienes que recibir el nº de filas, de columnas y el array de filas x columnas:    
Código C:
Ver original- void leer(int n, int m, int a[n][m]) { 
-     ... 
- } 
Espero que te sea de ayuda 
Saludos
vosk