случайные сбои с указателями и рекурсией - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь отобразить кости, используя рекурсивную функцию. Моя цель состоит в том, чтобы запустить IterateBones на кости root, чтобы вставить указатели на вектор указателей на структуру Bones и все остальные дочерние элементы детей; ,

Bone * b - указатель текущей итерированной кости

std :: vector & Bones - ссылка на вектор костей внутри другого класса

std :: Map отображает указатели на Структура костей по именам в векторе Bones

Моя проблема в том, что код работает безупречно 75% раз, но 25% раз происходит сбой программы. я пытался отладить с DBG, но он дал мне segfault один раз, а в других случаях он работает без каких-либо ошибок. Может ли кто-нибудь объяснить, почему это происходит и как я могу предотвратить это, потому что у меня есть схожие кусочки кода, но большинство сбоев

я использую GC ++ с mingw-w64

1 Ответ

0 голосов
/ 20 апреля 2020

Проблема была решена @john и @ EMarci15 в комментариях, требовалось зарезервировать Bones Vector

Bones.reserve(500)
...