C では、配列がポインタに減衰するため、ポインタから配列のサイズを取得するのは困難な場合があります。
ポインタとして渡される配列のサイズを求めるには必要がありますポインター自体にはこのデータが含まれていないため、追加情報が必要です。
この問題を解決するには、次の 2 つの方法が利用可能です。
サイズ情報を引数として渡す: 配列のサイズを追加パラメータとして関数に送信します。例:
func(int* array, size_t arraySize);
配列構文の利用: 配列のサイズが事前にわかっている場合、それを固定サイズの配列として渡すと、同じ結果が得られます。効果:
func(int array[5]);
ポインター減衰ルールにより、配列はポインターのように動作できますが、これは配列が本質的にポインターであることを意味するものではありません。関数の引数として渡されると、単にポインタに減衰します。
ポインタから配列のサイズを決定するには、追加のサイズ情報を提供する必要があります。これは、サイズを引数として明示的に渡すか、宣言内にサイズ情報を含む配列構文を利用することによって実現できます。
以上がC でポインターとして渡される配列のサイズを決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。