メソッドを実装していmemset()
ます。以下はコード スニペットです。
void my_memset(void* ptr, int n, size_t size)
{
unsigned int i;
for( i = 0; i < size; ++i, ++(char*)ptr )
*(char*)ptr = n;
}
次のようなエラーが表示されます。
prog.cpp: In function ‘void my_memset(void*, int, size_t)’:
prog.cpp:8: error: lvalue required as increment operand
ptr の型を からvoid*
に変更するとint*
、正常にコンパイルされます。
なぜ左辺値を求めているのですか?