PDA

View Full Version : [C] Aritmetica puntatori a void


Unrue
25-03-2010, 10:09
Ciao a tutti,

ho una domanda sui puntatori void. Ovviamente non è possibile fare aritmetica dei puntatori sui void, o almeno non in modalità standard.

Io ho una funzione del genere: ( pseudocodice)

for ( i..)

funzione( &buffer[i]);

con buffer puntatore void e funzione che prende in ingresso un puntatore void.

Ora, ovviamente così non funziona in quanto mi dà il warning sull'aritmetica fatta sui puntatori void. Quindi al momento ho risolto facendo vari if e castando il puntatore void al tipo corrispondente, ad esempio:



gint32* punt_tmp;

if( tipo== gint32)
punt_tmp = (gint32*)buffer;

gpointer void_tmp;


for(i..)

void_tmp = &punt_tmp[i];
funzione( &void_tmp[i]);

Così funziona, Però mi chiedevo se ci fosse un metodo più furbo per fare ciò. Grazie in anticipo. :)

Tommo
25-03-2010, 10:34
beh di solito si usa char*, byte* o quello che è e si usa naturalmente come una sequenza di bytes con l'aiuto di sizeof... però se ti serve proprio un oggetto di quel tipo non ha senso, tanto vale fare come fai te.

lefantome
25-03-2010, 19:08
beh di solito si usa char*, byte* o quello che è e si usa naturalmente come una sequenza di bytes con l'aiuto di sizeof... però se ti serve proprio un oggetto di quel tipo non ha senso, tanto vale fare come fai te.

quoto senza tipo non puoi farlo.

Non è che puoi castare a caso :mc:


c'è tonnaso :ciapet: