08/10/03 14:40:38
int main(){
double hoge[256];
func(hoge);
}
int hoge(double data[])
}
これはアドレス渡しですか?それとも配列のデータをコピーして渡していますか?
571:デフォルトの名無しさん
08/10/03 14:43:31
int hoge(double data[]) {
}
int main() {
double fuga[256];
hoge(fuga);
}
だと思うんだが基本はアドレス渡し
572:デフォルトの名無しさん
08/10/03 15:27:21
hogeはプロトタイプ宣言されていると考えてください。
アドレス渡しということはメモリの無駄は発生しないということですか?
573:デフォルトの名無しさん
08/10/03 15:29:27
>>572
まあ、配列は内部的に見るとポインタで持ってるしなあ。
574:デフォルトの名無しさん
08/10/03 15:31:57
配列全体のコピーが作られるかと言う意味なら作られない。
逆に言えば関数内で不用意にいじると配列が破壊される。
575:デフォルトの名無しさん
08/10/03 15:49:10
配列の中身を見たいだけなので、書き換えたりはしないです
どうも!
576:デフォルトの名無しさん
08/10/03 16:15:18
571だけどプロトタイプ宣言に噛みついたんじゃなくて
配列名と関数名が一緒ってのが気になったのよ
納得できたようでなにより
577:デフォルトの名無しさん
08/10/03 16:18:13
そもそも関数名が違うしなw
578:デフォルトの名無しさん
08/10/03 16:20:36
>>576
すいません。適当に書いたんで一緒のなめえになっちゃいました
579:デフォルトの名無しさん
08/10/03 16:22:20
なめえww
らめえww
580:デフォルトの名無しさん
08/10/03 16:37:00
中国人ですね。わかります
581:デフォルトの名無しさん
08/10/03 16:43:39
>>575
書き換えないことが確定的ならconstをつけておけ
582:デフォルトの名無しさん
08/10/03 16:46:02
int hoge(const double data[]) {
}
int main() {
double fuga[256];
hoge(fuga);
}
こうですか?
583:デフォルトの名無しさん
08/10/03 17:09:17
>>582
そう
>hoge(fuga);
このときhogeに渡っているのは &fuga[0]
つまり配列の先頭の要素のアドレス
constを付けずにhoge内でdataの中身を変更するとfugaの中身も変更される
584:デフォルトの名無しさん
08/10/03 17:31:43
アルゴリズム概論って言う授業で
システムを想定せよ、っていう宿題が
でたんですが,何を書けばいいでしょうか?
585:デフォルトの名無しさん
08/10/03 17:34:53
>>584
>>1を100回読んでからお帰りください
586:デフォルトの名無しさん
08/10/03 17:35:13
それだけじゃ何を言ってるのかわからないから三倍に書き足して宿題スレで聞け
587:デフォルトの名無しさん
08/10/03 19:18:33
WinLibD.lib(Misc.obj) : warning LNK4099: PDB 'vc80.pdb' が '..\WinLib\lib\WinLibD.lib' で、または 'c:\Documents and Settings\\デスクトップ\VS2005対応版\chapter5\Debug\vc80.pdb' に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。
このエラーはどうすれば回避できますか・・・?
588:デフォルトの名無しさん
08/10/03 19:19:42
回避すべきエラーが存在しません
589:デフォルトの名無しさん
08/10/03 19:21:46
エラーじゃなくて警告な
ライブラリにvc80.pdbが含まれてなかったなら諦めるしかない
590:デフォルトの名無しさん
08/10/03 20:06:02
>>588 >>589
ありがとうございます