HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0828
ぴょぴょdupptr で作成したクローン変数に代入可能か?2解決


ぴょぴょ

リンク

2014/8/28(Thu) 21:19:54|NO.64413

> 指定したアドレスポインタを指している変数を作成します。
> クローン変数は、メモリ上の情報を参照するための数値型配列変数として機能するようになります。
マニュアルには、上記の事が書かれてます。

> あくまでも、一時的なメモリ参照にのみ使用し、取り扱いには十分に注意してください。
ここでも「参照のみ」と書いてあるのですが、クローン変数への代入はすべきでないのですか?

> クローン変数は、指し示しているメモリの位置が変更されてもそれを検知することはできません。
> たとえば、変数に格納されているデータのメモリアドレスを指し示していたとしても、
> 変数の型や内容が更新されてメモリ位置が変更された場合に正しく参照することはできません。
マニュアルの上記の記述は、C/C++言語のようなポインタと同等の機能と考えて良いのか?



この記事に返信する


FunnyMaker

リンク

2014/8/28(Thu) 22:20:44|NO.64415

事実上代入できますよね。時々使ってます。


dim A,3 A = 1,2,3 dupptr B,varptr(A),4*3, 4 mes B(1) B(1) = 4 mes a(1)

普通に動きますし。


C/C++のポインタと同等かどうかは私は知りませんが、
代入に関して過去に話題になったようです。
http://hsp.tv/play/pforum.php?mode=pastwch&num=1830

データの物理的な位置が変わらない限りOKらしいですが。
私の経験からも、確保した領域からはみ出ない限り大丈夫だと思います。



ぴょぴょ

リンク

2014/8/28(Thu) 23:07:34|NO.64416

FunnyMakerさんへ

> データの物理的な位置が変わらない限りOKらしいですが。
> 私の経験からも、確保した領域からはみ出ない限り大丈夫だと思います。
これは配列などが再確保されたらクローン変数は無効になるという事ですね。
もう少しマニュアルに分かりやすく書いて欲しかったですね。

解決!!!



ONION software Copyright 1997-2023(c) All rights reserved.