#include <stdio.h>
int main(void)
{
int a[] = { 1, 8, 0, 5, 9 };
printf(\"%d\", a[8]);
return 0;
}
이러면 여러번 컴파일 빌드 해도 무조건 결과가 \'1\'이 뜨고 그 외의 다른 인덱스(0,1,2,3,4 제외)를 넣어서 출력하면 쓰레기 값이 변하면서 나와
이유가 뭐야?? 8번 인덱스 주소부분에 우연히 1이 들어있는걸 찾은걸까?? 근데 이러면 말이 안되는게 메모리 영역을 침범한거 아니야?? 고수님덜 미개한 저에게 설명좀여...
그냥 테스트할때마다 그 자리 메모리 안 건드렸나보지, 그게 왜 궁금해. 이건 0 나오네.
http://ideone.com/lrISXg
정렬 알고리즘 짜다가 풀긴 풀었는데 이해가 안되는 부분이 있어서 일부 따온거야 그냥 컴파일러 차이야?
a 배열 크기를 따로 안정해두고 삽입만해서 뒷부분은 쓰레기값이 남은게 아닐까 시프요..
우연히 a[8]에 1이 있는 경우임.