被释放的指针没有被分配 - 但为什么不呢?

时间:2014-05-22 10:43:10

标签: memory-management objective-c++

- (void)sendConfirmationMessage
{
    UInt8 *data = new UInt8[3];
    data[BYTE_SENDER_ADDRESS] = 0xFF;
    data[BYTE_MESSAGE_ID]     = 0x0C;
    data[BYTE_DATA_LENGTH]    = 0;

    CustomMessage *message = new BHCustomMessage();
    message->setDataWithSize(data, 3);  
    [self sendMessage:message];

    delete[] data; // malloc: *** error for object 0x1569d210: pointer being freed was not allocated
    delete message;
}

在上面的代码中,我得到delete []数据行上指定的malloc错误。

很抱歉,如果这是一个令人尴尬的简单问题,但是:为什么不分配数据指针?我的理解是,新的呼叫会做到这一点,因此需要在之后将其删除。

由于

0 个答案:

没有答案