У меня есть следующий код:
LicMessage message;
int oid[] = { 1, 3, 6, 1, 4, 1, 9363, 1, 5, 0 };
int ret1 = OBJECT_IDENTIFIER_set_arcs(&message.getMsg()->lic_ModuleID, oid, sizeof(oid[0]), sizeof(oid) / sizeof(oid[0]));
Класс LicMessage:
LicMessage::LicMessage() : licMsg(new LIC_Msg_t)
{
}
LIC_Msg_t* const LicMessage::getMsg () const
{
return licMsg.get();
}
std::auto_ptr<LIC_Msg_t> licMsg;
LIC_Msg_t генерируется asn1c и имеет OBJECT_IDENTIFIER_t lic_ModuleID; как поле.
По какой-то причине это не удается * glibc обнаружен build / tests // tests: free (): неверный указатель: 0x0000003ccab8e018 **
Не могли бы вы дать мне совет, что я делаю не так?
Вы теряете указатель, когда запрашиваете память. Вы должны выделить память malloc
,
Других решений пока нет …