我正在实施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*
,它编译成功。
为什么它要求左值?