On Tue, 23 Apr 2002, alexander saltanov wrote: > AS> cout << "\t" << *p << endl; > AS> paths.push_back(p, "2"); > AS> ^^^^^^^^^^^^^^^^^^^^^^^^ > > должно быть так: paths.push_back("2"); > но всё равно, на потате происходит segfault.
На RH72 - тоже (там gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)). Попробовал заменить vector<string> на vector<int> Падает на 16383-ем элементе. Так и должно происходить - элемент добавляется в вектор, по которому идет итерация, и в конце концов realloc(), вызываемый из ф-ий шаблона класса vector, возвращает адрес отличный от прежнего начала вектора - и посему указатель выходит за пределы выделенной памяти и получаем SIGSEGV. Если хочется добавляеть эл-ты в контейнер в процессе итерации по нему, надо использовать list, а не vector или deque. Best regards, -Vlad -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]