PDA

Visualizza la versione completa : [C] Passaggio per riferimento ed errore di cast


atomico
07-11-2009, 13:15
ciao a tutti, ho un problema

ho creato una funzione del tipo:

void prova(*pippo)

questa funzione nel main la vado a richiamare 2 volte..

una volta

prova(&pippo);

e un'altra volta

prova(1);

quando la chiamo mettendo direttamente il valore 1, mi da un warning
[Warning] passing arg 2 of `prova' makes pointer from integer without a cast

il prog parte uguale ma vorrei evitare se possibile questo warning... come posso fare?

shodan
07-11-2009, 13:23
Esplicita il cast.
prova( (pippo*) 1);

(Non rispondo di danni collaterali)

MacApp
07-11-2009, 13:47
Originariamente inviato da atomico
ciao a tutti, ho un problema

ho creato una funzione del tipo:

void prova(*pippo)

strano che riesca a compilare.

jumper21e
07-11-2009, 14:10
È ovvio che la seconda volta ti dia un warning. La funzione prende in input un puntatore (cioè un indirizzo) e, quando la richiami nel main, la prima volta funziona perché le passi l'inidirizzo della variabile "pippo" ma la seconda no perché gli stai passando un valore (1, in questo caso).

Loading