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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0914
窓口varptrで取得できる数値2解決


窓口

リンク

2009/9/14(Mon) 16:05:35|NO.27683

varptr()関数で変数のポインタを取得して、使用したいのですが。
その数値がポインタかポインタで無いかを判別する方法は有りますか?

例として
>>「0」はポインタとして絶対使用されない
>>それだから、それが0であるか無いかを判別することでそれが
>>変数のポインタであるか無いかを判別することができる

などの決まりごとが有れば有りがたいのですが



この記事に返信する


SYAM

リンク

2009/9/14(Mon) 16:55:59|NO.27684

判別が必要になるケースというのがよくわかりませんが…、
ポインタ変数の値として 0 は一般的に「無効なポインタ」、つまり、「何の変数もメモリ領域も指していない」という意味で扱われます。大抵の言語で。
なので、ポインタ変数の値として 0 は「何も指していない」を表す値としてあり得ます。

※varptr()関数には既存の変数を与えますから、「何も指していない」ことがあり得ません。したがって 0 は返りません。多分。


しかし、変数がポインタになったり実体になったりする上、実行時になってみないとどっちかわからないなんて使い方をしているほうが問題かと思います。
何をしようとしているのでしょうか? 教えていただければ、他にやり方が見つかるかもしれませんよ。



窓口

リンク

2009/9/14(Mon) 21:22:56|NO.27689

すみません説明不足でした。

構造体に(と言ってもdim型の配列変数ですが)
さまざまなステータスを保存して、命令を動かすつもりです。
(それは命令の内部処理をするためのフラグ群でも有ります。)

構造体のメンバは10個、その内の二つはポインタが必要で、変数のポインタの先に含むデータは
基本的に制限がない形になります。

そのポインタを必要とするメンバーに一定の値を指定したら(「0」など)
そのメンバは無効、という判別をしたかったのですが、大丈夫みたいですね。

有難うございます。解決しました。



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