int * num = (int *)malloc(sizeof(int));
로 하면 배열로 썻을 때 4바이트만 할당해줬으니까
인덱스를 하나만 쓸 수 있는거 아님??
근데 왜 num[3] = 1; num[4] = 2;
이런식으로 해도 오류 안나고 출력 잘 나오지?
int * num = (int *)malloc(sizeof(int));
로 하면 배열로 썻을 때 4바이트만 할당해줬으니까
인덱스를 하나만 쓸 수 있는거 아님??
근데 왜 num[3] = 1; num[4] = 2;
이런식으로 해도 오류 안나고 출력 잘 나오지?
거기가 남는 메모리라 운이 좋아서
원래 C는 배열 인덱스 넘어가도 체크 안함 운 좋아서 남아있는거 - 164260의 휘발성 계정
이래놓고 나중에 어! 내컴에선 되는데?
설마 했는데 진짜 운 좋아서 였구나
https://stackoverflow.com/questions/671703/array-index-out-of-bound-in-c