Global variables should never be used with recursion. It leads to stack overflow and program crash. Recursion works well only if it is in a self contained unit, using local variables.
Take this sample code segment:
int globalvariable;Recursivefunction(){if(++globalvariable==100)//take any value{return 0;}somefunction(); //the function changes value of//global variableRecursivefunction();}
size=3>
If somefunction(),globalvariable is altered, the program goes into an infinite sequence of function calls–each one of which can lead to stack overflow.