2017-12-13 1 views
-7

저는 C++이 새로운 것에 대해 이해하려고합니다. 아래 코드는 실행할 때마다 충돌합니다. 내가 아는 한, 0에서 9까지를 출력해야합니다. i = num [i]를 알면 무의미합니다. 그러나이 여분의 코드를 추가하면 충돌이 발생합니다. 왜?C++ 배열에 숫자를 입력하고 출력하기

int num[10]; 

    for(int i = 0; i < 10; i++){ 
     i = num[i]; 
     cout << num[i]; 
    } 

편집 - 감사합니다. 지금 명백하게 보인다 ...

+0

왜 0부터 9까지 인쇄해야합니까? 'num [i] = i;'를 시도한 배열 요소 – user463035818

+2

에 아무 것도 할당하지 않았습니다. – user1810087

+0

왜 배열을 사용하고 있습니까? –

답변

0
int num[10]; 

    for(int i = 0; i < 10; i++){ 
     i = num[i]; 
     cout << num[i]; 
    } 

위 코드에서 선언 한 배열에는 아무 것도 저장하지 않았습니다. 그래서 임의의 값을 출력 할 것입니다. 당신은 i에 정의되지 num[i] 할당하고

int num[10]={0,1,2,3,4,5,6,7,8,9}; 

    for(int i = 0; i <= 10; i++){ 

     cout << num[i]; 
    } 
1

을 :

다음은 당신이 생각하는대로 작동합니다. 그런 다음 i를 증가시키고 루프의 다음 반복에서 num의 요소 i (정의되지 않음)에 액세스합니다. 단 10 개 항목입니다.

실제로 제어 할 수없는 위치 num[1978253]에있는 메모리에 액세스하려고합니다.

관련 문제