• 締切済み

配列のポインタについて

先程はありがとうございました もうひとつ今日中に解決しておきたいことがあります ポインタを配列にするのであれば意味がわかるのですが、配列をポインタにすることに何のメリットがあるのでしょうか(もちろん可能ですが・・・) よろしくお願いします

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

これだけでは言葉遊びをしているようにしか思えません. 「配列は配列、ポインタはポインタとして扱う」というのがどういうことか, また「ポインタを配列にする」とか「配列をポインタにする」とかが何を意味するのか, 具体的にコードで見せてもらえませんか? 特に「扱う」と「する」との違いが明らかに分るような形で書いてください.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

「ポインタを配列にする」とか「配列をポインタにする」とかって, 何を意味するんですか? 配列は配列だしポインタはポインタ.

noname#180460
質問者

お礼

度々、お世話になります やはり配列は配列、ポインタはポインタとして扱った方がよいのでしょうか よろしくお願いします

回答No.2

>#1 リンク先の説明は間違いじゃないでしょうか。 関数の仮引数の最も外側(左端)の要素数は省略できるので、 void func(int [10]); は、 void func(int []); void func(int *); と同じでは?

noname#180460
質問者

お礼

回答ありがとうございます 私もそう思います よろしくお願いします

  • yama1718
  • ベストアンサー率41% (670/1618)
回答No.1

>配列をポインタにすることに何のメリット Cなら普通は配列はポインタで扱います。 関数の引数に配列を値渡しする方法もありますが、その値は元の配列からコピーされた値が入ります。 コピーなので関数内でその配列に値が代入されてもオリジナルの配列の内容は変化しません。 それにあまり大きいサイズの配列を入れるとスタックがオーバーフローする恐れもあります。 配列をポインタ渡しにすると先の問題は全て解決しますね。

参考URL:
http://etu.bituse.info/c/30
noname#180460
質問者

お礼

回答ありがとうございます 配列を値渡しする方法もあるのですね 配列を値渡しするとエラーになるという認識でした 勉強になります 一番の理由は、やはりオーバーフローなのでしょうか・・・

noname#180460
質問者

補足

すみません 「お礼」に書いた内容はちょっと不注意でした 一番の理由は、配列を渡すことができないからですね・・・ よろしくお願いします

関連するQ&A