Sometimes, a recursive function will have multiple base cases, and sometimes it will have multiple recursive cases. But it must always have at least one of each.
If there is no base case in a recursive function, or if the base case is never reached, the stack would grow foreverβat least in theory. In practice, the size of the stack is limited. If you exceed the limit it is called a stack overflow and your program will crash. In C++, when you do something that accesses memory you should not (like when you overflow the stack), you will encounter a segmentation fault.
Since there is no base case, the function does not stop when n == 0. It just keeps on counting! Eventually there is a segmentation fault, which stops the program.