1

構造体のアドレスを関数に渡しています。

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 は struct msg 内の共用体であり、value は共用体のメンバーであり、data は unsigned char の配列です。

elem->dataのmemcpyをどのように行うべきmsg.messageData.value.dataですか? (elem->dataの配列ですunsigned char)

ありがとう !!!

4

1 に答える 1