ページ 11

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

Posted: 2015年12月13日(日) 03:27
by toys
配列の要素数について

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

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

Posted: 2015年12月13日(日) 06:56
by box
toys さんが書きました: 関数の引数としてもらった配列の要素数を取得することは可能でしょうか?
無理ですね。
呼ばれた関数で要素数を扱うのであれば、要素数を引数として
渡してもらう必要があります。

配列が文字の配列(文字列)ならば、要素数(文字列の長さ)を要素数として
渡す必要はないと思います。strlen関数を使えば取得できますから。

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

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

コード:

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

hoge(new Array(1, 2, 3, 4, 5));
使用しているプログラミング言語を教えてください。