> Ok grazie, molto chiari tutti e due quidni i C non si può e se voglio
> proprio farlo devo usare il C++, però mi chiedevo se potevo usare questa
> specie di work-around, cioè utilizzare un puntatore void per poi castarlo al
> tipo che mi serve all'occorrenza, faccio un esempio, spero di non dire una
> cazzata enorme:
>
> #include <stdio.h>
>
> void func(void *x);
>
> main
> {
> int i;
> func(&i);
> }
>
> void func(void *x)
> {
> int c = (int)*x; // se è vero che l'indirezione
> // di in indirizzo restituisce
> // il valore contenuto nell'indirizzo
> // questo dovrebbe andare
> // ma il compilatore dice:
> // aggregate value used where an integer
> // was expected
> // dov'è che sbaglio???
> printf("%d", c);
> }
prima devi effettuare il cast da void* a int* e poi puoi utilizzare
l'operatore di indirezione. Quindi il programma diventa:
void func(void *x)
{
int c = *(int *)x;
printf("Ora funziona: c = %d", c);
}
Gaetano
|