我有一个大量使用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()
行,程序运行就好了。有什么想法吗?
答案 0 :(得分:0)
问题可能在您的代码中的其他位置。在Valgrind下运行它,看看你是否正在触摸任何不属于你的内存,或使用未初始化的数据等。