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);