View Full Version : C/C++ aiutooo!!
zanardi84
28-01-2011, 17:27
Salve, questa volta mi sto trovando davanti ad un errore che proprio non so risolvere!
Ad un certo punto del programma ho impostato una chiamata ad una funzione.
variabile = funzione();
La variabile è stata dichiarata int e la funzione è stata implementata come int funzione()
Il guaio è che il return della funzione, invece di restituire lo 0 come chiedo con il return 0, mi ritorna un numeraccio.
Qualche consiglio per ricercare l'errore?
insane74
28-01-2011, 17:32
Salve, questa volta mi sto trovando davanti ad un errore che proprio non so risolvere!
Ad un certo punto del programma ho impostato una chiamata ad una funzione.
variabile = funzione();
La variabile è stata dichiarata int e la funzione è stata implementata come int funzione()
Il guaio è che il return della funzione, invece di restituire lo 0 come chiedo con il return 0, mi ritorna un numeraccio.
Qualche consiglio per ricercare l'errore?
http://it.wikipedia.org/wiki/Arithmetic_overflow
zanardi84
28-01-2011, 17:38
Ho una novità:
Stavo compilando con code::blocks su win 7 64 bit e ho trovato l'errore.
Facendo copia e incolla del codice su una virtual machine con win xp 32 bit con il dev cpp non ho alcun errore.
Perchè?
clockover
28-01-2011, 17:41
Potrebbe anche essere che hai memorizzato lo 0 in una variabile, e tu invece di restituire il valore della variabile restituisci il suo indirizzo di memoria
zanardi84
28-01-2011, 17:42
Potrebbe anche essere che hai memorizzato lo 0 in una variabile, e tu invece di restituire il valore della variabile restituisci il suo indirizzo di memoria
Ma non uso puntatori in quello spezzone. Li uso più avanti nel programma.
insane74
28-01-2011, 17:44
Ho una novità:
Stavo compilando con code::blocks su win 7 64 bit e ho trovato l'errore.
Facendo copia e incolla del codice su una virtual machine con win xp 32 bit con il dev cpp non ho alcun errore.
Perchè?
se posti il codice magari è meglio. ;)
cmq a naso, visto che a 32 bit non hai il numero "strano" e a 64 si, l'ipotesi è ti stai "spostando", chessò, di un int che a 32 bit è grosso 4 byte e a 64 bit è grosso 8...
magari nel codice punti "male" e becchi un indirizzo di memoria con dentro chissà cosa.
zanardi84
28-01-2011, 17:47
se posti il codice magari è meglio. ;)
cmq a naso, visto che a 32 bit non hai il numero "strano" e a 64 si, l'ipotesi è ti stai "spostando", chessò, di un int che a 32 bit è grosso 4 byte e a 64 bit è grosso 8...
magari nel codice punti "male" e becchi un indirizzo di memoria con dentro chissà cosa.
Interessante!
Il codice da postare è molto molto lungo, ma l'errore è subito seguendo un percorso di esecuzione.
Come è possibile che io punti male?
zanardi84
28-01-2011, 17:49
Aggiornamento: con code blocks, anche su xp mi restituisce il numeraccio!
Adesso provo con il dev su 7, ma non cambierà penso.
zanardi84
28-01-2011, 17:58
Provato con il dev su 7, tutto ok.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.