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

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

Susan Sarandon
リリース: 2024-12-03 05:41:10
オリジナル
240 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート