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

関数パラメータとして渡される C 配列のサイズを確認するにはどうすればよいですか?

DDD
リリース: 2024-11-24 08:17:10
オリジナル
634 人が閲覧しました

How Can I Determine the Size of a C   Array Passed as a Function Parameter?

C 関数パラメーターでの配列サイズの決定

C では、配列は関数パラメーターとして渡されると暗黙的にポインターに変換されます。これは、サイズ情報が失われ、関数内で配列のサイズに直接アクセスできないことを意味します。

コード スニペット内:

void makeVectorData(float p_vertData[]) {   
 int num = (sizeof(p_vertData)/sizeof(int)); 
}
ログイン後にコピー

sizeof(p_vertData) はサイズを取得します。配列自体ではなく、配列へのポインタの。ポインタには 32 ビットが必要なので (32 ビット システムでは)、配列の実際のサイズに関係なく、num は 1 になります。

解決策:

配列のサイズにアクセスするには、サイズを示す別のパラメータを渡すことができます:

void makeVectorData(float p_vertData[], int size) {   
 int num = size; 
}
ログイン後にコピー

呼び出し元の場合は、配列のサイズを引数として指定します:

makeVectorData(verts, sizeof(verts) / sizeof(float));
ログイン後にコピー

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

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