0

我有一个大量使用QSharedPointer. 当我执行我的程序时它运行良好,但是当我用 GDB 调试它时它开始抛出错误。"Invalid Address specified to RtlFreeHeap"在以下代码中抛出:

QSharedPointer<PersistentList> p = 
   PersistentList::createEx(wrap("abc")).dynamicCast<PersistentList>();    

QSharedPointer<IPersistentCollection> c = p->empty(); // Error thrown after this line    

QSharedPointer<IPersistentCollection> ASeq::empty()
{
    return QSharedPointer<EmptyList>(new EmptyList());
}

如果我禁用该p->empty()行,程序运行得很好。有任何想法吗?

4

1 回答 1

0

问题可能在您的代码中的其他地方。在 Valgrind 下运行它,看看你是否正在触摸任何不属于你的内存,或者使用未初始化的数据等。

于 2012-05-29T02:47:46.210 回答