|
C/C++에선 당연한 결과입니다.
배열의 연산등에서..
C/C++은 끝을 검사하지 않습니다.
아래코드처럼 하면.. 당연히 메모리 영역 파괴가 일어나고..
그 부분에 중요한 자료가 있으면.. 원하지 않는 현상이 발생합니다.
언어자체가 상당히 자유롭지만...
이런 경우에 대한 것은 프로그래머의 책임으로 넘기고 있습니다.
조성택 님이 쓰신 글 :
: int a[3];
:
: int temp;
:
:
: for(temp=0;temp<10;temp++)
: {
: a[temp] = temp;
: }
:
: for(temp=0;temp<10;temp++)
: {
: printf("%d\n",a[temp]);
: }
:
: 이렇게 해서 출력하니 0~9까지 다 출력이 되네요..
: 분명 a[3] 해줬는데..런타임에러도 안나고 왜 그렇죠??
:
|