Memory 当malloc()返回与刚释放的地址相同的地址时,MEMDebug库出现问题

Memory 当malloc()返回与刚释放的地址相同的地址时,MEMDebug库出现问题,memory,Memory,我尝试使用writen by(对不起,我没有找到任何直接联系他的方法),但我发现我的代码中有一个奇怪的问题。 MEMDebug抱怨我的代码第三次进入函数时试图释放释放的对象 显然,MEMDebug在讲述一些奇怪的事情!我验证了free()和malloc()有效地调用了memdebug\uu对应函数,下面的mImgBuffer仅在该函数中操作。 代码如下: static void jpeg_init_destination (j_compress_ptr cinfo) { //printf

我尝试使用writen by(对不起,我没有找到任何直接联系他的方法),但我发现我的代码中有一个奇怪的问题。
MEMDebug
抱怨我的代码第三次进入函数时试图释放释放的对象

显然,
MEMDebug
在讲述一些奇怪的事情!我验证了
free()
malloc()
有效地调用了
memdebug\uu
对应函数,下面的
mImgBuffer
仅在该函数中操作。
代码如下:

static void jpeg_init_destination (j_compress_ptr cinfo)
{
    //printf("1 init buffer size=%d\n",imageBufferSize);
    if(mImgBuffer) {
        free(mImgBuffer);
        mImgBuffer = NULL;
    }
    mImgBuffer = malloc(imageBufferSize);
    mImgBufferSize = imageBufferSize;
    mImgBufferWPos = 0;


    cinfo->dest->next_output_byte = mImgBuffer;
    cinfo->dest->free_in_buffer = imageBufferSize;

}
下面是
MEMDebug
的输出:

MEMDebug
怎么能告诉我? 在调用
free()
之前,已成功完成对
malloc()
的调用。下面是我的代码中发生的具体情况:

第一次调用jpeg\u init\u destination():
调用malloc()->获取地址0x963e8c4

第二次调用
jpeg\u init\u destination()

免费呼叫(0x963e8c4)
再次调用
malloc()
->获取地址0x963e8c4

第三次调用
jpeg\u init\u destination()

免费呼叫(0x963e8c4)->
MEMDebug
投诉!?!为什么?

如果
malloc()
返回与先前释放的地址值相同的地址值,我怀疑
MEMDebug
算法有问题。但事实上,这并没有错