Q:

Can't locate two-dimensional array of chars in c with length 1000000

I'm trying to create a two dimensional array of character in c program as:
char array[1000000][10];

but the program output "Segmentation fault" in the runtime. I tried to create it with 100,000 and it worked, but 1,000,000 didn't work. What is the reason that makes this line of code causes Segmentation fault?

A:

It is probably overflowing your operating system's idea of how large a stack can be, assuming it's a local variable inside a function.
That array will require 1000000 * 10 = ~9.5 MB of stack space, which is quite a lot.
Try:

Making it static.
Using malloc() instead.
Modifying OS-level limitations.
Making it global. Of course global variables are bad, so this is the worst solution in many cases.

