次のような動的配列を宣言しました。
int *arr = new int[n]; //n is entered by user
次に、これを使用して配列の長さを見つけました。
int len = sizeof(arr)/sizeof(int);
の代わりにlenasを与えます。なぜそうなのですか?1n
次のような動的配列を宣言しました。
int *arr = new int[n]; //n is entered by user
次に、これを使用して配列の長さを見つけました。
int len = sizeof(arr)/sizeof(int);
の代わりにlenasを与えます。なぜそうなのですか?1n
sizeof動的配列では機能しないためです。はポインタであるpointerため、 のサイズが得られますint *arr
割り当てられた配列のサイズを保存するか、より適切に使用する必要がありますstd::vector
は配列ではなくポインターであるためarr、ポインターのサイズが のサイズに等しいアーキテクチャで実行していますint。
アンドリューは正しい。nをどこかに保存する必要があります (どこで使用するかによって異なります)。または、.NET を使用している場合は、配列またはリストを使用できます...