Russian Qt Forum

Qt => Общие вопросы => Тема начата: Blackwanderer от Апрель 12, 2011, 14:37



Название: [Решено]SIGSEGV при вызове QList::append()
Отправлено: Blackwanderer от Апрель 12, 2011, 14:37
Есть следующий список:
Код
C++ (Qt)
       struct Rib
       {
           Rib(int point1, int point2, int rib, int triangle)
           {
               begin = point1;
               end = point2;
               twin = rib;
               neighbour = triangle;
               local = -1;
           }
 
           int begin;
           int end;
           int twin;
           int local;
           int neighbour;
       };
       QList<Rib> m_Ribs;
При выполнении следующей команды
Код
C++ (Qt)
m_Ribs.append(Rib(point1, point2, *rib2, -1));
где point1=149, point2=92, *rib2=41905 получаю SIGSEGV на строчке
Код
C++ (Qt)
if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) n->v = new T(t);
которая находится в недрах QList::append. В списке уже находится 41905 элементов. В чем может быть причина?

Компилятор - MinGW, режим отладки. Qt 4.7.2

Update
CDB выдает "Stack overflow"


Название: Re: SIGSEGV при вызове QList::append()
Отправлено: twp от Апрель 12, 2011, 15:14
скорей всего причина где-то в другом месте, может имеет место рекурсия


Название: Re: SIGSEGV при вызове QList::append()
Отправлено: Blackwanderer от Апрель 12, 2011, 15:17
может имеет место рекурсия
Есть, и судя по всему достаточно глубокая.
Update
Думаю, проблема найдена. Что-то сработало неправильно и программа впала в бесконечную рекурсию.