int A[10000000]; //This gives a segmentation fault
int *A = (int*)malloc(10000000*sizeof(int));//goes without any set fault.
Теперь мой вопрос, просто из любопытства, в том, что, если в конечном итоге мы сможем выделить более высокое пространство для наших структур данных, скажем, например, BST и связанные списки, созданные с использованием подхода указателей в C, не имеют такого ограничения памяти ( если общий размер не превышает размер ОЗУ для нашей машины) и, например, во втором выражении выше объявления типа указателя, почему мы не можем объявить массив с более высоким размером (пока он не достигнет предела памяти!!)... Это потому, что выделенное пространство смежно в массиве статического размера?. Но тогда откуда мы получаем гарантию, что в следующих 1000000 словах в ОЗУ не будет работать другой кусок кода...??
PS: Я могу ошибаться в некоторых высказываниях, которые я сделал... в этом случае правильно.