Когда программа запускается, вы создаете объекты:
Kinematic kin;
StreeringOutput steering;
Это называется default-initialization , т.е. все члены инициализируются значением default ,Для vector
это пустое состояние.
Но update
делает следующее:
// i and j can be as large as 99
k.position[i][j]
k.velocity[i][j]
steering.linear[i][j]
Но position
и т. Д. Пусты!vector
s не может автоматически расти в соответствии с вашими потребностями.Вы индексируете вне пределов , что является неопределенным поведением.
Вы должны правильно инициализировать векторы, чтобы убедиться, что на самом деле есть 100 элементов:
Kinematic kin;
kin.position.assign(100, vector<float>(100));
// same for others