malloc으로 int형 길이3짜리 메모리 할당했는데

왜p[5], p[6]이 입출력이 제대로 되는거임?


int main(){
    int* p;
    p = (int *)malloc(3*sizeof(int));
    p[0]=1, p[1]=2, p[5]=6, p[6]=7;
    printf("%d\n%d\n%d\n", p[0], p[6], p[5]);
    printf("%d", _msize(p));