3

重複
の可能性: sizeof (配列を指すポインター) を見つける方法

次のような動的配列を宣言しました。

int *arr = new int[n];   //n is entered by user 

次に、これを使用して配列の長さを見つけました。

int len = sizeof(arr)/sizeof(int);

の代わりにlenasを与えます。なぜそうなのですか?1n

4

3 に答える 3

12

sizeof動的配列では機能しないためです。はポインタであるpointerため、 のサイズが得られますint *arr

割り当てられた配列のサイズを保存するか、より適切に使用する必要がありますstd::vector

于 2012-08-01T13:39:01.980 に答える
11

は配列ではなくポインターであるためarr、ポインターのサイズが のサイズに等しいアーキテクチャで実行していますint

于 2012-08-01T13:40:04.413 に答える
0

アンドリューは正しい。nをどこかに保存する必要があります (どこで使用するかによって異なります)。または、.NET を使用している場合は、配列またはリストを使用できます...

于 2012-08-01T13:41:59.420 に答える