Push_back для вектора указателей структуры выдает ошибку сегментации внутри оператора if в цикле for, но не в отладкеC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Push_back для вектора указателей структуры выдает ошибку сегментации внутри оператора if в цикле for, но не в отладке

Сообщение Гость »


Я писал небольшую реализацию шахмат для тренировки с entt и ncurses и столкнулся с проблемой, о которой даже не знаю, что делать.

По сути, при реализации ходов я просматриваю выбранные части, чтобы определить набор ходов, который они могут использовать. Идея заключалась в том, чтобы сохранить ходы в векторе и показать его. Однако при попытке push_back в вектор выдается ошибка сегмента.

// получаем ходы auto selected_view = reg.view(); std::vector перемещается; for (auto [ent, Piece, P, Pawn]: selected_view.each()) { если(!pawn.has_moved) { moving.push_back(новая позиция{1, 0}); // это сбой } } Это исчезнет, ​​если я удалю оператор if

// получаем ходы auto selected_view = reg.view(); std::vector перемещается; for (auto [ent, Piece, P, Pawn]: selected_view.each()) { moving.push_back(новая позиция{1, 0}); // это отлично } Я попробовал построить его в режиме отладки, чтобы пройти через него, но при этом, конечно, все сработало так, как я и ожидал. Я предполагаю, что это означает, что я делаю что-то, вызывающее неопределенное поведение.

Однако я не могу понять, что является причиной этого, я бы предположил, что он хранится в куче, и вектор следит за ним, но явно нет. То же самое происходит и с вектором структур.

Если кто-нибудь сможет мне помочь, я буду очень признателен.

Используется система Ubuntu 22.04, для компиляции используется g++.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»