salve a tutti
ho un problema nella stampa di un puntatore a char contenuto in una struct.
la situazione è la seguente:
un client riempie una struct composta da 3 campi, di cui uno è char * buffer, e la invia tramite una write() su un socket correttamente creato e connesso al socket del server.
il server legge dal suo socket tramite la write () e memorizza il contenuto in una identica struttura.
quando voglio stampra il campo char * buffer non ottengo il risultato atteso ma una serie di caratteri casuali.
quale può essere il problema?
vi posto la parte interessata di codice e vi ringrazio
SERVER
codice:
typedef struct {
char type;
unsigned int length;
char *buffer;
}message_t;
... connessione al socket ...
int salva;
message_t mms;
mms.buffer = malloc(sizeof(char));
salva = read(fdclient,&mms,12);
printf("Ho ricevuto il nome con %s\n",mms.buffer);
CLIENT
codice:
typedef struct {
char type;
unsigned int length;
char *buffer;
}message_t;
message_t mms;
mms.buffer = malloc(10*sizeof(char));
int salva;
salva = write(fdclient, &mms, 12);
printf("ho scritto %s\n" , mms.buffer);