我將結構的地址傳遞給函數。如何將一個結構指針的數據拷貝到另一個結構成員
void validate(void *ptr)
{
// A variable of type Msgmt Structure
Msgmt msg;
memset(&msg, 0, MSG_SIZE);
// Type casting the void pointer to this structure dev_t
dev_t *elem = (dev_t*)ptr;
msg.msg_id = 10;
if (elem->devCategory == VAL){
// This statement crashes the code
// memcpy(msg.messageData.value.data, elem->data, LEN);
// This statement goes through
memcpy(&msg.messageData.value.data,elem->data,LEN) ;
}
// ... do something
}
messageData是結構MSG和值內的聯合是聯合成員和數據是無符號字符的陣列。
我應該怎麼做elem->data
的memcpy到msg.messageData.value.data
? (elem->data
是一組unsigned char
)
謝謝!!!
如果你真的想要的是'dev_t *',你爲什麼要'void *'? – user2357112
你能提供你正在使用的數據類型的定義嗎? (源代碼,請不要說明。) – user2357112
如何定義/計算LEN? – alk