#include <iostream>
using namespace std;
int main()
{
int somma[9],k=0,f=11;
somma[k]=somma[k]+f;
cout << "somma:" << somma[k];
system("PAUSE");
}
これは私のコードです。私は出力値 "11"を期待していますが、 "10"を得ています。 このエラーはなぜ発生しますか?C++の特異エラー
#include <iostream>
using namespace std;
int main()
{
int somma[9],k=0,f=11;
somma[k]=somma[k]+f;
cout << "somma:" << somma[k];
system("PAUSE");
}
これは私のコードです。私は出力値 "11"を期待していますが、 "10"を得ています。 このエラーはなぜ発生しますか?C++の特異エラー
somma[k]+f
を使用すると、配列somma[0]
の未初期化要素の値を読み取ることになります。これを行う際の動作は、が定義されていませんです。だから、出力は何でもかまいません。
解決策は、代わりにint somma[9] = {};
と書いて、すべての要素を0に設定することです.Cで移植性が必要な場合は、代わりに= {0};
と書いてください。
また、C++でmain()
の値を明示的に返すことをお勧めします。
using namespace std;
より前に改行する必要がありますが、これはおそらくコードを投稿した方法によるものです。
ok最初にエラーが表示されます。しかし、私はsomma [k] = 0; – user3520954
spossible solution - arrayを他の変数として追加することができます。 – Slava
@ user3520954 'int somma [9] = {};' 0で配列を初期化する – Slava
コードを修正してください –
どこに問題がありますか – user3520954
あなたは今答えを持っています:)それを見てください –