掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
またもや関数ポインタがうまく渡せなくなってしまいました… (ID:13422)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
二度目の質問をお許しください。 先ほどの関数渡しは成功したのですが、少し入れ子にしてプログラムを組んでみたところ、例外が発生してしまいました。 function Foo(Func: TFunction; x:Real): Real; begin Result:= Func(x); end; function Bar(Func: TFunction; a: Real; t: Real): Real; function Quux(x: Real): Real; begin Result:= Func(x)*a; end; begin Result:= Foo(@Quux, t); end; procedure Button2Click(Sender: TObject); function Half(x: Real): Real; begin Result:= x/2; end; begin ShowMessage( FloatToStr( Bar( @Half, 3, 1 ) ) ); end; Button2 を押すと、関数 Half に 3 をかけたものに、引数 x = 1 を代入した値を返す意図のプログラムを書きました。 しかし、「アドレス xxxxxxxx でアドレス xxxxxxxx に対する読み込み違反が発生しました。」と表示されてしまいます。 何か解決法はないものでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.