関数を抜けたら、値が変わってしまう。 – プログラミング – Home

関数を抜けたら、値が変わってしまう。
 
通知
すべてクリア

[解決済] 関数を抜けたら、値が変わってしまう。


tokio
 tokio
(@tokio)
ゲスト
結合: 20年前
投稿: 4
Topic starter  

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
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

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


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

一応参考関連スレ。
http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+26785


返信引用
REE
 REE
(@REE)
ゲスト
結合: 23年前
投稿: 240
 

HPoweredfについては、Banさんのご指摘どおりです。

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


返信引用
tokio
 tokio
(@tokio)
ゲスト
結合: 20年前
投稿: 4
Topic starter  

>Freqについては、FFT関数でその値をreturnしていますか?

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました