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

Rispondi quotando