ホームページ >バックエンド開発 >C++ >C でポインターを使用する場合、配列のサイズを取得するにはどうすればよいですか?

C でポインターを使用する場合、配列のサイズを取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 05:41:10229ブラウズ

How Can I Get the Size of an Array When Using Pointers in C  ?

C でポインターを使用して配列のサイズを取得する

配列を操作する場合、配列内の要素の数を決定することが重要です。ただし、 C で配列をポインターとして扱う場合、このタスクは困難になります。

C は C から「配列とポインターの等価性」を継承します。配列は関数の引数として渡されるとポインターに分解され、次のようなコードが可能になります。 >

void func(int* ptr);

int array[5];
int* ptr = array; // equivalent to 'ptr = &array[0]'
func(array); // equivalent to 'func(&array[0]);'
あなたの場合、配列自体ではなく配列要素へのポインターを渡しています。したがって、ポインタだけにはサイズ情報が含まれません。

これを処理するには、追加の引数としてサイズを明示的に渡す必要があります。

static const size_t ArraySize = 5;
int array[ArraySize];
largest(array, ArraySize);
配列ポインタを受け入れるように関数をカスタマイズするとそのサイズを直接指定します:

int largest(int* array, size_t size);
また、糖衣構文を活用して、固定の配列を定義することもできます。 size:

void func(int array[5]);
ただし、これは配列ポインタ宣言の糖衣構文です:

void func(int* array);
単なるポインタではなく配列自体を持っている場合、次の数を取得できます。使用する要素:

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

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