В вашем рекурсивном вызове вы используете постфикс --
(numTimes--
), а не префиксную версию (--numTimes
). В результате значение numTimes
уменьшается после рекурсивного вызова. Это означает, что Recurse вызывается с 10 бесконечно. Используйте префиксную версию (которая уменьшит ее перед вызовом) или просто передайте numTimes-1
(поскольку значение numTimes изменять не нужно).
Причина, по которой вы сталкиваетесь с segfault, заключается в том, что ваш стек переполняется в защищенную память.