Let's say that you defined this:
As you can see visually, act follows CP_count.Code:int CP_count = 0 ; int act = 0 ;
If the compiler happens to place act immediately following CP_count in the stack, and if you coded
then because 5 is out of range for the array, then the variable act would receive the value. This is what would get saved:Code:CP_count = 0 ; CP_count = 1 ; CP_count = 2 ; CP_count = 3 ; CP_count = 4 ; CP_count = 5 ;
The same situation could also occur if both CP_count and int were malloced, as they could be adjacent in storage.Code:CP_count would be 0 CP_count would be 1 CP_count would be 2 CP_count would be 3 CP_count would be 4 act would be 5
This is a very simple example, and overlays can be much more complex than this.