2016-04-24 22 views
-2

JavaScriptで私が気に入っていることの一つは、多次元配列を混乱させることです。私はC++を学ぶことに決めました。私はそれを学ぶのを助けるために配列を使いこなしてみたかったのです。私は私の最初のC++プログラムを多次元配列をテキストベースのテーブルに変えました。 JavaScriptの配列はC++の配列と大きく異なるため、非常に複雑で、数時間かかることがありました。この中乱数が初期化されていない配列C++

int a[5][4] = {{44,0,1, 55555555}, {144,2,44444, 67}, {2,444,6, 99}, {3,44,7, 2}, {4,8,9444, 1000}}; 

:私のプログラムは、このような配列になります私を混乱させる何

-------------------------------- 
| 44 | 0 | 1  | 55555555 | 
|-----+-----+-------+----------| 
| 144 | 2 | 44444 | 67  | 
|-----+-----+-------+----------| 
| 2 | 444 | 6  | 99  | 
|-----+-----+-------+----------| 
| 3 | 44 | 7  | 2  | 
|-----+-----+-------+----------| 
| 4 | 8 | 9444 | 1000  | 
|------------------------------| 

を、私は私の配列を初期化していないときということです例えばこれらの乱数から来ている

------------------------------------------- 
| 1   | 0  | 1606416280 | 32767 | 
|------------+-------+------------+-------| 
| 0   | 1  | 0   | 0  | 
|------------+-------+------------+-------| 
| 1606416296 | 32767 | 0   | 0  | 
|------------+-------+------------+-------| 
| 0   | 0  | 0   | 0  | 
|------------+-------+------------+-------| 
| 0   | 0  | 0   | 0  | 
|-----------------------------------------| 

int a[5][4];、私のテーブルは次のように出てきますか?

注:新しいプロジェクトを作成し、配列int a[5][4]の宣言を追加してからcout << a[0][2];を追加すると、コンソールに番号1606416280が表示されるため、これらの番号は私のコードに由来しません。

答えて

0

未初期化変数を印刷すると、未定義の動作が呼び出されています。あなた自身の言葉で:

これらの数字は私のコード

から来ていないあなたは正しいです - 彼らは、ガベージ値です。克服するには、いくつかの値を割り当ててから、これらの値を出力する必要があります。ただし、指摘されているように、グローバル変数は常に0に初期化されていることに注意してください。in this SO question.

1

C++では、スタック変数は初期化されていないので、出力する数値はそのメモリアドレスに格納された値(ランダムなガベージ値)です。

0

私の混乱は、私の配列を初期化していないときです。 [5] [4] ;,私のテーブルは次のように出てくる をint型:C/Cで

++メモリの未初期化領域がゴミと見なされます。初期化されていないメモリ領域、つまりゴミを印刷しました。

関連する問題