PDA

View Full Version : [C]Segmentation fault


noiseimpera
19-01-2011, 20:52
il più classico degli errori:)

ho una struct del genere:


typedef struct {
char type; /** tipo del messaggio */
unsigned int length; /** lunghezza in byte */
char* buffer; /** buffer messaggio */
} message_t;


ho dichiarato:
message_t* msg_snd=NULL;
e quando accedo:
msg_snd->type=MSG_CONNECT;
dove MSG_CONNECT è una MACRO char,
mi da segmentation fault.
Perchè? Dove sbaglio?

wingman87
19-01-2011, 21:02
msg_snd è un puntatore e non punta da nessuna parte per questo quando tenti di accedere a un suo campo ti da errore. Non so quello che devi fare però per eliminare quell'errore le soluzioni sono 2:
1. invece di dichiarare msg_snd come puntatore lo dichiari come message_t e accedi ai suoi campi con . invece che con ->
2. allochi lo spazio per un message_t e ne assegni l'indirizzo a msg_snd (con malloc)

GByTe87
19-01-2011, 21:02
Mmm.... stai cercando di deferenziare un puntatore a NULL... direi che il caso è tra i più classici. :D

Cosa ti aspettavi succedesse?

noiseimpera
19-01-2011, 22:09
grazie mille. da tanto non programmavo in c e devo riguardarmi per bene la malloc e i suoi usi.