【发布时间】:2014-10-29 08:41:44
【问题描述】:
我有一个功能
foo(void *buf) {
int i = 0;
unsigned char ptr = get_user_name();
//I want the buffer to hold user name from some position onwards
for(i=0;i<MESSAGE_LTH;i++)
*( (unsigned char*)(buf) + sizeof(some_struct)) ++ = ptr[i];
}
我收到error: lvalue required as increment operand
我希望缓冲区在结构之后立即保存用户名;
【问题讨论】:
-
你打算做什么?
-
@timrau 缓冲区的前几个字节将保存 (some_struct) 数据并且结构的类型会发生变化,所以我希望用户名在缓冲区中的结构之后很快出现。
-
你知道为什么
n++ = 10;不起作用吗? -
@KerrekSB 是的,我明白这一点!我无法根据我的要求正确地形成语法。
-
@kartik:不,这与语法无关。这是关于后增量和左值的语义。这就是为什么我给出了一个更简单的问题版本。
标签: c pointers void-pointers