関数内での配列の要素数取得

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
toys

関数内での配列の要素数取得

#1

投稿記事 by toys » 9年前

配列の要素数について

初心者です。 お教えいただければ助かります。
配列の要素数を取得するのにはsizeof()で取得できることはわかったのですが、
別の関数に渡した場合、先頭要素のポインタとして渡すので、sizeof()を使用しても要素数がわからなくなりました。
関数の引数としてもらった配列の要素数を取得することは可能でしょうか?

box
記事: 2002
登録日時: 14年前

Re: 関数内での配列の要素数取得

#2

投稿記事 by box » 9年前

toys さんが書きました: 関数の引数としてもらった配列の要素数を取得することは可能でしょうか?
無理ですね。
呼ばれた関数で要素数を扱うのであれば、要素数を引数として
渡してもらう必要があります。

配列が文字の配列(文字列)ならば、要素数(文字列の長さ)を要素数として
渡す必要はないと思います。strlen関数を使えば取得できますから。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 関数内での配列の要素数取得

#3

投稿記事 by みけCAT » 9年前

toys さんが書きました:関数の引数としてもらった配列の要素数を取得することは可能でしょうか?
C言語では関数の引数として配列をもらうことはできません。引数として配列を宣言すると、自動的にその配列の要素へのポインタに変換されます。
例えば、JavaScriptでは関数の引数としてもらった配列の要素数を取得することは可能です。

コード:

function hoge(arg) {
  var yousosuu = arg.length; // 配列の要素数を取得し、yousosuuに格納する
  // alert(yousosuu);
  return yousosuu;
}

hoge(new Array(1, 2, 3, 4, 5));
使用しているプログラミング言語を教えてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る