1. ホーム
  2. c++

[解決済み] 配列の長さを求めるにはどうしたらよいですか?

2022-03-15 15:09:32

質問

配列がいくつの値を持っているかを調べる方法はありますか? 配列の末尾に到達したかどうかを検出することもできます。

どのように解決するのですか?

C言語の配列ということであれば、次のようにすればよいでしょう。

int a[7];
std::cout << "Length of array = " << (sizeof(a)/sizeof(*a)) << std::endl;

これはポインタでは動作しません(つまり、それは は、以下のいずれに対しても動作しません。 ):

int *p = new int[7];
std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;

または

void func(int *p)
{
    std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
}

int a[7];
func(a);

C++では、このような動作が必要な場合、コンテナクラスを使用する必要があります。 std::vector .