분명 12바이트 할당했는데 3칸짜리 배열인데

왜 5번째, 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", sizeof(p));