QSharedPointer Неверный адрес, указанный для RtlFreeHeap - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть программа, которая интенсивно использует 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 голосов
/ 29 мая 2012

Проблема, вероятно, в другом месте вашего кода. Запустите его под Valgrind и посмотрите, касаетесь ли вы какой-либо памяти, которая не принадлежит вам, или используете неинициализированные данные и т. Д.

...