Comandi sizeof e strlen

Allora il tuo consiglio mi sembra molto sensato, ho utilizzato la malloc per allocare la memoria necessaria,questa funzione mi dovrebbe sostituire la memset giusto? ora per inserire i parametri, quella lista di valori presenti nel memcpy?

char packet=(char) malloc(sizeof(fixed_header)+sizeof(var_header)+strlen(id)); // Alloca memoria per contenere i parametri di connessione per il server

memcpy(packet,fixed_header,sizeof(fixed_header));
memcpy(packet+sizeof(fixed_header),var_header,sizeof(var_header));
memcpy(packet+sizeof(fixed_header)+sizeof(var_header),id,strlen(id));

ti chiedo scusa,ma mi stò approcciando adesso alla programmazione in C e tu mi sembri molto competente,grazie.