Originariamente inviato da Hiroe
Come faccio a gestire la necessità di avere una define, con il problema che poi mi crea usandola come parametro di una funzione??
Hai sostanzialmente due possibilità:
- la più banale (e meno flessibile) è non passare il parametro della lunghezza: se decidi che la lunghezza del vettore su cui opera la funzione è N, non serve passarlo, visto che è #definito globalmente; per cui:
codice:
    double average(int arr[N])
e dentro usi N tranquillamente.
- la più corretta - e tutto sommato più semplice - è cambiare il nome al secondo parametro, in modo che non venga sostituito dalla define:
codice:
    double average(int arr[], int n)
(e ovviamente nella average cambi tutti gli N in n), e nel main la richiami come a=average(b, N).

Nota che in ogni caso non è necessario specificare le dimensioni dell'array passato come parametro - per quanto riguarda gli array monodimensionali, questi sono comunque passati come un puntatore, ignorando le dimensioni che specifichi.
Intanto Matteo ti ringrazio per i suggerimenti