1

一部の単純なコードが機能していないようですが、その理由はわかりません。

ここに画像の説明を入力してください

整数の配列を動的に作成しています。この配列のサイズは15と表示されていますが、これはプログラムをデバッグしようとしているためです。実際のサイズは実行時に可変です。

C ++で整数配列を動的に作成する方法について、いくつかのサイトを閲覧しました。このようなサイトが登場しました。それらのコードは私のコードのように見えます。配列が作成され、forループが配列内の各要素の値を設定します。

しかし、forループを実行した後、サイズ0の配列を取得します。何が問題になる可能性がありますか?

これは、VisualStudioを使用してWindowsでコンパイルする非常に基本的なC++プログラムです。

4

2 に答える 2

4

ポインタは配列とは異なり、デバッガは最初の要素のコンテンツとそのアドレスのみを表示します。動的配列は適切に作成され、に追加できarray[0],... array[14]ますwatch window。メモリ内の各変数を確認できます。 ここに画像の説明を入力してください

または、配列メモリアドレスをDEBUG-> Windows-> Memory-> Memory1に渡すと、メモリ内の各要素が正しく初期化されていることがわかります。

ここに画像の説明を入力してください

静的配列を宣言する場合、デバッガーはすべての要素を表示する必要があります。

 int array2[15];

これらは基本的なデバッグスキルであり、アプリケーションをデバッグするときに便利です。

于 2013-02-09T00:47:46.780 に答える
2

デバッガーは、それが配列の先頭へのポインターであることを認識していません。これは、 ( :intのタイプであるため)へのプレーンポインターがあると見なします。したがって、ここにあるその値(配列の最初の要素)が表示されます。arrayint*int0

あなたのコードは大丈夫です。実際、15秒の配列をint正しく割り当て(および初期化)しました。

于 2013-02-09T00:43:30.083 に答える