QSharedPointer为RtlFreeHeap指定的无效地址

时间:2010-09-23 01:52:33

标签: c++ qt qt4 qsharedpointer

我有一个大量使用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()行,程序运行就好了。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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