Termination of a process
Normal completion, time limit exceeded, memory unavailable
Bounds violation, protection error, arithmetic error, invalid instruction
IO failure, Operator intervention, parent termination, parent request
A number of other conditions are possible.
Segmentation fault : usually happens when you try write/read into/from a non-existent array/structure/object component. Or access a pointer to a dynamic data before creating it. (new etc.)
Bus error: Related to function call and return. You have messed up the stack where the return address or parameters are stored.