void * xを持つが、char *にキャストしたいので、++演算子は次のバイトを指し、次の4バイトのブロックを指しません。算術演算用ポインタをキャストする -
私はしかし、:
(char *) x -= byte_length;
をコンパイラが文句を言う:私は間違って下さいつもり
Error, lvalue required as left value of assignment.
を?おかげさまで
x = (char*)x - byte_length;
がchar*
にx
をキャストし、オフセット、そしてx
に戻って割り当てを適用します。私はこのようにそれを行うだろう
void* x;
char* cx = (char*)x;
cx -= byte_length;
x = cx;
あなたは++演算子のような '' void *型を扱うと思いますなぜ'int *'? –