我有一個大學項目需要將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
操作碼的值不會被複制到緩衝區。 –
你應該編輯你的評論,把它作爲一個大學項目加入到問題中,以便回答的人知道這些限制。截至目前,你所做的只是發佈代碼並說'它不起作用。' – 2013-10-20 01:50:28