0

次のコードがあります。

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 * *

私が間違っていることを教えてください。

4

1 に答える 1

0

メモリを要求すると、ポインタが失われます。によってメモリを割り当てる必要がありますmalloc

于 2013-08-30T13:13:05.083 に答える