2017-12-13 14 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を出力するのですか?配列要素 – user463035818

+2

に 'num [i] = i;'を試したことがありません。 – 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]のメモリにアクセスしようとしています。

関連する問題