[Tech] Domanda di C
Mirko Maischberger
mirko@lilik.it
Mar 8 Feb 2005 17:45:34 CET
Valerio Montagnani wrote:
> Ciao a tutti.
>
> Mi trovo in difficoltà con questa cosa:
>
> Ho un vettore di 120.000 valori interi. Vorrei fare una media dei valori
> del vettore a 4000 punti per volta.
> Per fare questo ho scritto la seguente funzione:
>
> int16_t *Media(int16_t *buffer, int finestra, int dimensione)
> {
> int i,j;
> long int somma;
> int16_t *bufOut;
>
> bufOut=NULL;
> bufOut=i16vector(dimensione/finestra);
> // la func i16vector alloca dinamicamente un vettore di interi
> // la cui dimensione è data dall'argomento della funzione stessa
>
> for (i=0; i<dimensione; i=i+finestra)
> {
> somma=0;
> for (j=i; j<i+finestra; j++)
> {
> somma=somma+buffer[j];
> }
> bufOut[i/finestra]=(int16_t)round(somma/finestra);
> }
> return bufOut;
> free(bufOut);
> }
Io toglierei il round e il free.
Per il resto se ci sono magagne mi sa che sono altrove...
Se continua a darti problemi prova a inviare un programmino il più
piccolo possibile (ma compilabile) con cui riprodurre l'errore,
altrimenti è difficile mostrarti altro che solidarietà :)
Mirko
Maggiori informazioni sulla lista
flug-tech