Обясните мне, почему:
1.c:
#include <stdio.h>
int main() {
int array[16000000];
scanf("%d",&array[15999999]);
return 0;
}
2.c:
#include <stdio.h>
int array[16000000];
int main() {
scanf("%d",&array[15999999]);
return 0;
}
3.c:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *array=malloc(16000000*sizeof(int));
scanf("%d",&array[15999999]);
free(array);
return 0;
}
./1.c.out - ошибка сегментирования
./2.c.out - работает
./3.c.out - работает
Это баг или фича?