Serve la libreria stdlib.h per usare abort()
#include <stdlib.h>

int horner(float *coeff[], int n, int c);
Uhmmm hai chiaro il modo in cui lavorare coi puntatori sugli array?

La dichiarazione corretta à float *coeff

Un array è un insieme di n elementi ordinati tutti dello stesso tipo. Ciò significa che se hai l'indirizzo di memoria del primo puoi accedere agli altri.

Quindi array[i] equivale a *(array+i)

Il main() dichiaralo come void main() se no serve un valore di ritorno.

for(i=0; i<=n; i++){

La condizione deve fermarsi a i < n
Ricordati che i parte da 0, non da 1.

int horner(float *coeff[], int n, int c)

La dichiarazione corretta è *coeff. Se no dichiari un array di puntatori a float di dimensione sconosciuta.


Ora dovrebbe compilare correttamente (ma nn lho provato)