関数を抜けたら、値が変わってしまう。

[戻る]
tokio 2006/05/10(水) 23:33:22
Freq =
FFT(complex data0[],  complex data1[], int FFTStart, int TotalD,  static 
double HPoweredf,  double HPowerPeak,  double HPoweredf2,  double Max2Peak)

こういう関数を使っています。

この関数を出る直前(returnの前)に、
Freq=410が入っているのを、また、
HPoweredfに対応する変数(型はdoubleです)が504になっているのを
確認しているのですが、
両方とも、関数を出たとたん、0
になってしまいます。
何で、出力側の引数がわたってこないのでしょうか?

Ban 2006/05/11(木) 01:04:13
引数が「値渡し」なので、関数内でいくら変数の値を変更してもそれはただの複製、
呼び元は変更されないということでしょう。
リファレンス( & ) とかポインタ( * )とかを調べて、「参照渡し」にしてみてくださ
い。

Blue 2006/05/11(木) 01:37:56
一応参考関連スレ。
http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+26785

REE 2006/05/11(木) 10:01:54
HPoweredfについては、Banさんのご指摘どおりです。

Freqについては、FFT関数でその値をreturnしていますか?
分からないようであれば、その周辺を提示してみてください。

tokio 2006/05/14(日) 22:18:36
[[解決]]
>Freqについては、FFT関数でその値をreturnしていますか?

ああ!
していませんでした!


解決です、
ありがとうございました。

古いスレッドには追加発言できません。