掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ポインターについて?? (ID:5533)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以下のようなプログラムを書きました。 private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; Xs,Ys: PDArray; // pointer to array of double; Ns: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,NDiv:integer; XDiv: double; Q1:double; H1:double; begin Case ComboBox1.ItemIndex of // 補間法を設定 0: Interpolate1.Method:=Linear; 1: Interpolate1.Method:=Square; 2: Interpolate1.Method:=CSpline; end; Interpolate1.DKnot( Ns, Xs, Ys ); // 節点を指定して補間パラメータを計算する NDiv:=StrToInt(Edit1.Text); XDiv:=(Xs[Ns]-Xs[1])/NDiv; for i:=0 to NDiv do begin Q1:=XDiv*i; H1:=Interpolate1.Value(Q1) ; //与えられたX値に対する補間値を計算する Chart1.Series[1].AddXY(Q1,H1); end; end; procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin Ns:=6; // 節点の個数 GetMem( Xs, Ns*8); GetMem( Ys, Ns*8); For i:=0 to Ns do begin Xs[i]:=i; Ys[i]:=(-3.6*Power(Xs[i],3))+(0.000102*Power(Xs[i],2))+(0.00187*Xs[i])+3.7; end; end; procedure TForm1.Interpolate1FPError(Sender: TObject); begin Application.MessageBox( PChar(Interpolate1.ErrorMessage), 'FP Error Message', mb_OK + mb_DefButton1); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin FreeMem( Xs, Ns*8 ); FreeMem( Ys ,Ns*8 ); end; end. 実行させると、思うようにプログラムはうごくのですが プログラムを終了させようとすると EInvalid Pointer ,クラスの例外が生成しました。 ’無効なポインター操作’と デバッカ例外が発生してしまいます。 FormCloseのところのプログラムがおかしいのでしょうか? よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.