ホームページ >バックエンド開発 >C++ >C でポインターとして渡される配列のサイズを決定するにはどうすればよいですか?

C でポインターとして渡される配列のサイズを決定するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 06:42:12999ブラウズ

How Can I Determine the Size of an Array Passed as a Pointer in C  ?

ポインタを使用した配列サイズの決定

C では、配列がポインタに減衰するため、ポインタから配列のサイズを取得するのは困難な場合があります。

問題

ポインタとして渡される配列のサイズを求めるには必要がありますポインター自体にはこのデータが含まれていないため、追加情報が必要です。

解決策

この問題を解決するには、次の 2 つの方法が利用可能です。

  1. サイズ情報を引数として渡す: 配列のサイズを追加パラメータとして関数に送信します。例:

    func(int* array, size_t arraySize);
  2. 配列構文の利用: 配列のサイズが事前にわかっている場合、それを固定サイズの配列として渡すと、同じ結果が得られます。効果:

    func(int array[5]);

説明

ポインター減衰ルールにより、配列はポインターのように動作できますが、これは配列が本質的にポインターであることを意味するものではありません。関数の引数として渡されると、単にポインタに減衰します。

ポインタから配列のサイズを決定するには、追加のサイズ情報を提供する必要があります。これは、サイズを引数として明示的に渡すか、宣言内にサイズ情報を含む配列構文を利用することによって実現できます。

以上がC でポインターとして渡される配列のサイズを決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。