2012-04-13 2 views
0

크기 1의 배열을 선언하고 그 안에 5 개의 요소를 저장 한 다음 검색 할 수 있습니까?배열 크기가 no.

내가 배열 arr[1]을 선언 한 다음 그 안에 5 개의 요소를 저장 한 코드를 하나 시도해 보겠습니다. 실제로 5 가지 요소를 저장할 수있었습니다! 그거 어땠어? 이 C (또는 C++), 당신은 아주 쉽게 배열보다 더 많은 요소를 저장할 수있는 경우

+2

프로그래밍 언어는 무엇입니까? –

+0

프로그래밍 언어에 따라 다릅니다. 그래서 확실한 대답을 드릴 수 없습니다. –

+0

나는 그가 C에 대해 이야기하고 있다고 생각한다. – Surya

답변

2

맞는 크기 :

#include <stdio.h> 

int main (void) { 
    int x = 0; 
    int a[1]; // so that a[0] is the only valid element 
    a[1] = 7; // write beyond end of array 

    printf ("x=%d, &a[0]=%p, &a[1]=%p, &x=%p\n", x, &(a[0]), &(a[1]), &x); 
    return 1; 
} 

은 이렇게하지만, 아마 다른을 덮어 정의되지 않은 동작에 이르게 정보의 조각, 그리고 정말 좋은 생각이 아닙니다. 내 시스템에서

, 인쇄 위의 그 코드 :

x=7, &a[0]=0xbf9bb638, &a[1]=0xbf9bb63c, &x=0xbf9bb63c 

내가 제로로 x를 설정하고 명시 적으로 변경 결코 사실에도 불구하고. 이는 어레이의 끝을 넘어 서면 쓰기에 영향을 미치기 때문입니다 (a[1]x에 대한 두 개의 동일한 주소에서 알 수 있듯이).

관련 문제