Come da topic, che fa sta cosa?
int n = *((int*)arg)
grazie
Come da topic, che fa sta cosa?
int n = *((int*)arg)
grazie
Allora, è chiaro che "n" è di tipo intero, mentre ciò che segue l'uguale è un po' ostico.codice:int n = *((int*)arg)
"arg" è probabilmente un puntatore ad un area di memoria, addirittura potrebbe essere "void* arg".
Spacco in due passi lo statement.
Il cast
forza l'area di memoria a puntatore da intero, cioè sto dicendo fai in modo che il contenuto dell'area di memoria puntata sia un intero. Ora m punta ad un intero. Ovvio ora il significato dicodice:int* m = (int*)arg
che assegna ad n il valore puntato da m.codice:int n = *m
Lo stesso effetto dovresti poterlo ottenere in questo modo
Tutto chiaro???codice:int n = (int)(*arg)
Diego Purpo
Effetti Collaterali - Il lato oscuro dell'informatica
Infocube
Sviluppo Software
diego.purpo[at]effetticollaterali.it
Al 90% arg è un puntatore a void.
Quello che ha postato eumene è giusto.
Solo che non puoi scrivere
Questo ti darebbe un errore. Infatti arg è solo un puntatore e quindi contiene solo il valore di un indirizzo di memoria. Quindi il risultato non avrebbe senso.codice:int n = (int)arg;
Invee devi fare per forza in quel modo, trattandolo prima come un puntatore ad integer e poi dereferenziandolo.