喫茶XRAYトップページ

[スレッド全体
]

[13056] ポインタ?返信 削除
2019/9/26 (木) 15:45:47 Mr.XRAY
以下の記事を追加しました.

[ 変数のアドレスとポインタとポインタ型 ]
http://mrxray.on.coocan.jp/Delphi/Others/Pointer.htm

昔書きかけて放置状態だったのを整備しました.
メールでの質問だったのですが,
変数の管理部分と実際の値が書き込まれている領域とは違う,というこを
説明するのに非常に苦労したことを覚えています.
そのことがあって書きかけた内容です.
削除してしまうのももったいないので整備して UP しました.


[13075] Re:ポインタ?返信 削除
2019/10/3 (木) 08:13:59 Mr.XRAY
> [ 変数のアドレスとポインタとポインタ型 ]
> http://mrxray.on.coocan.jp/Delphi/Others/Pointer.htm


レコード型について触れていませんでしたので追加しました.
その他,いろいろ編集しています.


[13077] Re2:ポインタ?返信 削除
2019/10/4 (金) 09:05:48 Mr.XRAY
クラス型とポインタの記事に重大な間違いがありましたので修正しました.
私目の無知による間違いです.
「無知は最大の武器」


[13082] Re3:ポインタ?返信 削除
2019/10/7 (月) 20:40:40 Mr.XRAY
また追加しました.

[ 汎用ポインタ型の Objects プロパティと Data プロパティ ]
http://mrxray.on.coocan.jp/Delphi/Others/Pointer.htm#10
[ tag プロパティに数値やレコード型のデータを関連付けする ]


参考までに昔あった質問の一部.
もちろん例によってコードの提示はなしです.
「メモリを解放しているのにメモリリークが発生します」
と言う内容の質問です (でした).

おそらく以下のようなことをやっていたのでははないかと推測しました.
本人からの give がなかたので何ともですが・・・
このコードは Button2.Tag に代入されているアドレスだけのメモリは解放されます.


procedure TForm1.Button1Click(Sender: TObject);
var
  LpValue : PDouble;
begin
  New(LpValue);
  LpValue^ := 123.56;
  Button1.Tag := NativeInt(LpValue);

  New(LpValue);
  LpValue^ := 5000.12;
  Button2.Tag := NativeInt(LpValue);

  Dispose(LpValue);
end;


[13083] Re4:ポインタ?返信 削除
2019/10/7 (月) 21:02:06 Mr.XRAY
こういうポインタの記事を書いたりテストしてみると,
Delphi のポインタの操作というのはよくできているなぁ,
と思います.

少し前に配列の記事を書きましたが,
Delphi の配列の操作関係はよくできていると思います.

遥か昔は C++ を使用していたわけですが
C++ はそれなりですが,
どんなアプリの開発に使用するかにもよるのかも知れません.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82