Eu estava estudando a função malloc. Para entender melhor o uso da função, criei o código abaixo:
int main(){
int* array = malloc(sizeof(int)*2);
array[0] = 1;
array[1] = 2;
array[2] = 3;
for (int i=0; i<3; i++){
printf("%d\n", array[i]);
}
free(array);
}
Eu esperava que fosse dar erro, já que eu somente reservei, através da função malloc, espaço para 2 inteiros, e no corpo do programa fiz atribuição de valores para 3 inteiros. No entanto, ao contrário do que eu esperava, o programa funcionou normalmente. Alguém saberia explicar o motivo?