Вы проверили файл ядра, чтобы увидеть, где он умер?
При этом наиболее вероятным сценарием является деление на ноль и / или утверждение, что X и Y не равны нулю.
РЕДАКТИРОВАТЬ: Также вероятно, что когда вы не инициализируете значения, программа ведет себя неправильно, но просто выглядит , чтобы работать правильно / лучше.
EDIT2 в ответ на комментарий: Вы можете настроить системы unix / linux (с coreadm
), чтобы оставить «основной» файл после сбоя или прерывания программы. Он содержит информацию о стеке вызовов, регистрах, памяти и т. Д. Похоже, что вы нашли его (или что-то подобное). Строка с надписью
free (): неверный следующий размер (быстрый):
0x00000000006e3110 *
на самом деле заставляет меня передумать. Похоже, что ваша куча повреждена, и удаление делает ее видимой. Одна возможность состоит в том, что вы удалили объект дважды. Если вы работаете в Linux, вероятно, valgrind будет вашим лучшим способом выяснить, что произошло.