[Tech] Domanda di C
Daniele Masini
d.masini@tiscali.it
Ven 9 Lug 2004 10:34:17 CEST
se buffer è dichiarato come
int16_t buffer[n];
dove n è la dimensione del vettore (ovviamente n >= 10) e
int dispari[a];
int pari[b];
dove a >= 5 e b >= 5, allora il ciclo seguente dovrebbe funzionare
for(i=0; i<5; i++)
{
dispari[i]=buffer[2*i];
pari[i]=buffer[2*i+1];
}
Saluti,
Daniele
Valerio Montagnani wrote:
> Ciao a tutti.
>
> Se ho un vettore di 10 di int16_t.
> Lo volgio dividere in due vettori di 5 celle, in modo che il primo
> vettore contenga i numeri dispari e il secondo quelli pari.
> Ho pensato di usare un ciclo del tipo:
>
> for(i=0; i<5; i++) {
> dispari[i]=buffer[2*i+sizeof(int16_t)];
> pari[i]=buffer[2*i+1+sizeof(int16_t)];
> }
>
> ma i valori che ottengo sono tutti sbagliati.
>
> L'operazione giusta non è quella di dire al compilatore di prendere la
> locazione di memoria alla posizione, per esempio 2*i e sommarci l'offset
> legato alla rappresentazione del tipo di intero?
>
> Grazie, Vale
>
Maggiori informazioni sulla lista
flug-tech