我有一个大量使用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()行,程序就会运行得很好。有什么想法吗?
发布于 2012-05-29 10:47:46
这个问题很可能出现在代码的其他地方。在Valgrind下运行它,看看你是否接触了任何不属于你的内存,或者使用了未初始化的数据,等等。
https://stackoverflow.com/questions/3774891
复制相似问题