Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ポインタの勉強中なのですが)

ポインタの勉強中なのですが

このQ&Aのポイント
  • C言語の勉強中でポインタの理解に苦労しています。
  • 関数の仮引数として配列を書いても、実際には配列の先頭要素を指すポインタとして扱われます。
  • 関数内では配列ひとつあたりのサイズしか返さないのに、main関数内では配列全体のサイズを返すのはどうしてでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hrsmmhr
  • ベストアンサー率36% (173/477)
回答No.2

すみません。本来の質問を忘れてました。 mainでは内部変数で定義してるんじゃないでしょうか? それならコンパイラは配列サイズを認識できますので配列サイズを返せます (やったことがないのでできるだろうとだけいわせてください) 関数の引数で渡されるとmainでのarrayと同一のものとしてコンパイルしないので ポインタのサイズしか返しようがないです

noname#132718
質問者

お礼

ありがとうございます。 配列のサイズを調べるために sizeof を使うときは、同じ関数内で宣言していないということいけないということですね。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • hrsmmhr
  • ベストアンサー率36% (173/477)
回答No.1

sizeof(array)は配列のサイズではなく ポインタのサイズになると思います。32ビットのアドレス空間のシステムなら4でしょう 関数の受け渡でnumがくるならnumを使うのが普通でないですか?

すると、全ての回答が全文表示されます。

関連するQ&A