ndice @Array fora do limite em C
PorqueC
diferencia no caso de índice de matriz fora do limite
#include <stdio.h>
int main()
{
int a[10];
a[3]=4;
a[11]=3;//does not give segmentation fault
a[25]=4;//does not give segmentation fault
a[20000]=3; //gives segmentation fault
return 0;
}
Entendo que ele está tentando acessar a memória alocada para processar ou encadear no caso dea[11]
oua[25]
e está saindo dos limites da pilha no caso dea[20000]
.
Por que o compilador ou o vinculador não dão um erro, eles não estão cientes do tamanho da matriz? Se não, então comosizeof(a)
funciona corretamente?