У меня есть проект колледжа, где нужно преобразовать int в буфер char. Мне нужно использовать memcpy, но когда я копирую значения, это не работает, потому что msg_buf все еще пуст. У меня есть некоторые ограничения: - Мне нужно использовать memcpy, потому что мой учитель проверит мой код как memcmp (msg_str, & opcode, 2) == 0).Сообщение для буфера в C
Вот мой код:
int message_to_buffer(struct message_t *msg, char **msg_buf){
int opcode = htons(msg->opcode);
int c_type = htons(msg->c_type);
int result;
int buffer = sizeof(opcode) + sizeof(c_type);
switch(msg->c_type){
case CT_RESULT:
result = htonl(msg->content.result);
buffer += sizeof(result);
*msg_buf = (char*)malloc(sizeof(char) * 12);
if(msg_buf == NULL)
return -1;
memcpy(*msg_buf,&opcode,sizeof(opcode));
break;
};
return buffer;
}
Что здесь не так?
Можете ли вы уточнить, как он не работает? – icktoofay
Значение кода операции не копируется в буфер. –
Возможно, вы должны отредактировать свой комментарий о том, что это проект колледжа, поэтому люди, которые отвечают, знают об ограничениях. На данный момент все, что вы сделали, это почтовый код и сказать «он не работает». –