|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2010
Messaggi: 4
|
[C]Segmentation fault
il più classico degli errori
ho una struct del genere: Codice:
typedef struct {
char type; /** tipo del messaggio */
unsigned int length; /** lunghezza in byte */
char* buffer; /** buffer messaggio */
} message_t;
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? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
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) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
|
Mmm.... stai cercando di deferenziare un puntatore a NULL... direi che il caso è tra i più classici.
Cosa ti aspettavi succedesse?
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO |
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Mar 2010
Messaggi: 4
|
grazie mille. da tanto non programmavo in c e devo riguardarmi per bene la malloc e i suoi usi.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:34.



















