(https://k61.kn3.net/0/1/D/2/B/E/6CE.png)
porque dice que es esencial pasar la dirección del array ¿no se podría pasar como argumento de la función el arreglo en ves de un puntero y trabajar con el arreglo dentro de la función?
mi pregunta es:¿es necesario hacerlo con puntero?
En este caso no. getint extrae de la entrada estándar un valor numérico (dentro de la entrada estándar esatá dispuesto como una cadena), lo transformará a su valor entero correspondiente y lo devolverá via argumento. El valot de retorno de la función sirve para informar si ha tenido éxito o no.
getint es independiente del resto del código, por eso no trabaja con el array. Tan solo toma una cadena de números y devuelve su valor entero correspondiente. El código llamante es el responsable de realizar el trabajo de acomodar los datos, en este caso llenar el array. Y por eso hay que pasar la dirección de la posición del aray, porque getint tan solo espera un puntero a un entero.