If your program tries to access beyond the limit of the available stack memory then stack overflow occurs. In other words, you can say that a stack overflow occurs if the call stack pointer exceeds the stack boundary.
If stack overflow occurs, the program can crash or you can say that segmentation fault that is the result of the stack overflow.