Long型のポインタ

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Long型のポインタ

by NoWest » 2005年7月19日(火) 00:56

しかし残念ながら下記のコードではうまく動作しませんでした。これではなぜダメなのでしょうか。
>
Dim APtr As *Long
> APtr=calloc(4*10)
> APtr[0]=-10
> MessageBox(0,Str$(APtr[0]),"",MB_OK)
> free(APtr)
多分、*Longというポインタを作っても、*Dwordのポインタとして認識されているんだと思います。
目的の変数を噛ませれば問題なく動作しますので特にどうってことはないんですが、、ポインタ操作が多くなってくるとポインタへのアクセス法も各変数に対応したものにしないといけないと思いますね。

by BingoMan » 2005年7月19日(火) 00:20

NoWest様、早速のご返事ありがとうございます。
Dim APtr As DWordPtr
APtr=calloc(4*10)
APtr[0]=-10
Dim B As Long
B=APtr[0]
MessageBox(0,Str$(B),"",MB_OK)
free(APtr)
でうまく動きました。しかし残念ながら下記のコードではうまく動作しませんでした。これではなぜダメなのでしょうか。
Dim APtr As *Long
APtr=calloc(4*10)
APtr[0]=-10
MessageBox(0,Str$(APtr[0]),"",MB_OK)
free(APtr)

Re: Long型のポインタ

by NoWest » 2005年7月19日(火) 00:05

>

コード: 全て選択

Dim APtr As DWordPtr
> APtr=calloc(10)
> APtr[0]=-10
> MessageBox(0,Str$(APtr[0]),"",MB_OK)
> free(APtr)
> これでは-10が表示されないのは当然(DWordPtrなので)ですが、符号付整数のポインタがないので困っています。なにかよい方法はございませんでしょうか。

コード: 全て選択

Dim APtr As DWordPtr
APtr=calloc(4*10)
APtr[0]=-10
Dim B As Long
B=APtr[0]
MessageBox(0,Str$(B),"",MB_OK)
free(APtr)
ではダメですか?


もしかしたら下記でも動くかもしれませんが。。。

コード: 全て選択

Dim APtr As *Long
APtr=calloc(4*10)
APtr[0]=-10
MessageBox(0,Str$(APtr[0]),"",MB_OK)
free(APtr)

Long型のポインタ

by BingoMan » 2005年7月18日(月) 22:49

コード: 全て選択

Dim APtr As DWordPtr
APtr=calloc(10)
APtr[0]=-10
MessageBox(0,Str$(APtr[0]),"",MB_OK)
free(APtr)
これでは-10が表示されないのは当然(DWordPtrなので)ですが、符号付整数のポインタがないので困っています。なにかよい方法はございませんでしょうか。

ページトップ