- 締切済み
配列のポインタについて
先程はありがとうございました もうひとつ今日中に解決しておきたいことがあります ポインタを配列にするのであれば意味がわかるのですが、配列をポインタにすることに何のメリットがあるのでしょうか(もちろん可能ですが・・・) よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
これだけでは言葉遊びをしているようにしか思えません. 「配列は配列、ポインタはポインタとして扱う」というのがどういうことか, また「ポインタを配列にする」とか「配列をポインタにする」とかが何を意味するのか, 具体的にコードで見せてもらえませんか? 特に「扱う」と「する」との違いが明らかに分るような形で書いてください.
- Tacosan
- ベストアンサー率23% (3656/15482)
「ポインタを配列にする」とか「配列をポインタにする」とかって, 何を意味するんですか? 配列は配列だしポインタはポインタ.
- yaemon_2006
- ベストアンサー率22% (50/220)
>#1 リンク先の説明は間違いじゃないでしょうか。 関数の仮引数の最も外側(左端)の要素数は省略できるので、 void func(int [10]); は、 void func(int []); void func(int *); と同じでは?
お礼
回答ありがとうございます 私もそう思います よろしくお願いします
- yama1718
- ベストアンサー率41% (670/1618)
>配列をポインタにすることに何のメリット Cなら普通は配列はポインタで扱います。 関数の引数に配列を値渡しする方法もありますが、その値は元の配列からコピーされた値が入ります。 コピーなので関数内でその配列に値が代入されてもオリジナルの配列の内容は変化しません。 それにあまり大きいサイズの配列を入れるとスタックがオーバーフローする恐れもあります。 配列をポインタ渡しにすると先の問題は全て解決しますね。
- 参考URL:
- http://etu.bituse.info/c/30
お礼
回答ありがとうございます 配列を値渡しする方法もあるのですね 配列を値渡しするとエラーになるという認識でした 勉強になります 一番の理由は、やはりオーバーフローなのでしょうか・・・
補足
すみません 「お礼」に書いた内容はちょっと不注意でした 一番の理由は、配列を渡すことができないからですね・・・ よろしくお願いします
お礼
度々、お世話になります やはり配列は配列、ポインタはポインタとして扱った方がよいのでしょうか よろしくお願いします