void*

[戻る]
森田 [E-Mail] 2002/06/24(月) 19:09:20
初めまして。

一般的な演算式で

A += B → A = A + B ですよね?

でも、もしAがvoid* Aの場合、コンパイルエラーが発生します。
本来はキャストすれば済む問題だと思うのですが
今回使用するものがAを1バイトのChar型で計算しなくてはなりません。

A = (char*)A + B でコンパイルは通るのですが
明らかに左辺がポインタでないので、中身が異常です。
どうすれば、上の演算式が成り立つのでしょうか?

YuO [E-Mail] 2002/06/24(月) 20:06:51
> でも、もしAがvoid* Aの場合、コンパイルエラーが発生します。

void *に対して行える演算は比較とキャスト,否定のみです。


> 今回使用するものがAを1バイトのChar型で計算しなくてはなりません。

なら,void *ではなくchar *やunsigned char *で処理すればよいのでは?


> 明らかに左辺がポインタでないので、中身が異常です。

どの式における左辺でしょうか。

古いスレッドには追加発言できません。