|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 326
|
[C]Dubbio puntatori
salve a tutti,
abbiamo il seguente dubbio riguardo l'utilizzo dei puntatori!!! Abbiamo il seguente codice funzioneA.c: typedef struct paperino { int a; .... } com ; com *c; //dichiarata globale c = malloc(sizeof(struct paperino)); c->a = 10; ... ... write(fd,c,sizeof(struct command *); Quindi scriviamo nella fifo fd l'indirizzo della struct puntata a c; In un altro listato funzioneB.c abbiamo quest'altro codice: com *c; read(fd,c,sizeof(struct command *); printf("%d\n",c->a); Quindi, avendo passato l'indirizzo della struct in modo esatto, se nella funzioneB accedo ai campi della struct, dovrei trovare il valore che ho scritto nella funzioneA!!! In pratica,la printf nella funzioneB dovrebbe stamparmi 10 !!! Ma tutto ciò non avviene!!! Come mai?? Spero che qualcuno ci illumini!!!!!!!!!!!!!!!!!!!!!!!!! Grazie |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
E comunque per la dimensione dovresti mettere sizeof(*c) oppure sizeof(com) o sizeof(struct paperino). Insomma ... la dimensione della struttura puntata da 'c'. Idem come sopra.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:21.