0

断点似乎是由于堆损坏。
这是调用堆栈中两帧的快照:

第一的:

void QString::free(Data *d) 
{
#ifdef QT3_SUPPORT
    if (d->asciiCache) {
        QMutexLocker locker(asciiCacheMutex());
        Q_ASSERT(asciiCache);
        asciiCache->remove(d);
    }
#endif
    qFree(d);//Breakpoint here, d = 0x08c9efd4 
}

第二:

void qFree(void *ptr)
{
    ::free(ptr); //Breakpoint here, ptr = 0x00000000
}

让我感到困惑的是,指针0x08c9efd4在传递给之前是,而在传递给时qFree突然变成NULLqFree

什么可能导致指针突然变化?

4

0 回答 0