You should try to compile it with a GNU GCC compiler and when you do that, drop the conio.h header and the getche() function. That code compiles with succes in Code::Blocks with the compiler named above. That error refers to an inability of accesing the stack memory when the a - variable has to use it. That error might signaling a system issue.
Disch "i<=10;" this means less than or equal to 10. 9 is infact less than 9 therefore this code works fine. I have just run this code on my compiler using BORLAND and it gives me zero erros and the output is fine.
i <= 10 includes the values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, AND 10. The 10 value is out of bounds and invalid. That's why the program is in fact incorrect.
Why the program works for you in BORLAND is just a lucky happenstance of Borland's compilers. The program is writing to memory outside of the 2-D array, and happened to not cause irrecoverable problems. However, in another system it did.
The fact that the program works for you is not evidence that it is correct.