double_var[5]로 선언
디버그창에
double_var[index] = 1
index = 6
즉 double_var[6] = 1이 들어 갔다는건데
6은 선언되어 있지도 않은데
오버 플로우는 커녕 잘만 돌아가는 이 괴현상은 뭐죠...
디버그창에
double_var[index] = 1
index = 6
즉 double_var[6] = 1이 들어 갔다는건데
6은 선언되어 있지도 않은데
오버 플로우는 커녕 잘만 돌아가는 이 괴현상은 뭐죠...
들어가긴 들어가는데.. 해당 데이터가 운~ 좋게 비어있어서 가능한듯.
동적 할당 처럼 됬단 말입니까??
double_var[5]의 다음자리가 그냥 비어있었기에 들어간것을쁀
원래 배열이 앞뒤로 안정성 때문에 비워놓는다는걸로 암. 운좋게 연속적으로 다른데이터가 붙어 있지않았다면.. 뭐 잘되는거져머. 이러다가 갑자기 뻑나여
만약 다음자리를 다른 곳에서 쓰고 있었다면...
C는 대범해서 배열 경계 검사 따위 안함. 다만 프로그래머가 어련히 알아서 신경 쓰려니 할 뿐.
그러니까 저렇게 쓰다가 프로그램 뻑나면 다 니탓임 ^^
모니터에서 손이 뻗어나와 니 귀싸대기를 때려도 할말 없는 결과다.
C에서는 int c[10]; 해놓고 c[100000]=1; 이라고 써도 컴파일에러 안난다. 운좋으면 런타임에러도 거의 없을 수 있지