Падет оттого что выкладываете кусок кода, по которому ничего нельзя сказать. Есть такое понятие - минимальный рабочий пример. Он должен компилироваться, в идеале быть представленным одним файлом, в самом большом идеале - снабженным Makefile или простой инструкцией по сборке.
Также подразумевается что вы уже:
1. Пытались сами отладить программу в отладчике
2. Навтыкали логов через одну строку кода, чтобы точно локализовать место падения, но так и не поняли почему именно случается падение.
Обычно на реализации второго пункта этой программы человек сам понимает причины крэша. В противном случае - как я уже писал пишите минимальный рабочий пример и выкладывайте. А то телепаты берут дорого, а отнимать время подобными недооформленными вопросами у других хороших людей, готовых помогать это банальное хамство.