尝试时在赋值中使用无效左值

时间:2013-11-11 10:43:07

标签: c++ assign

所以这个代码很重要

char *arguments[ARGSIZE];
char *buf;
//Put stuff in buf and do whatever until
*arguments++ = buf;

似乎*参数++抛出错误,为什么这不是有效的?

2 个答案:

答案 0 :(得分:1)

如果您需要通过数组进行此类迭代,则需要其他指针:

char *arguments[ARGSIZE];
char **ptr = &arguments[0];
char *buf;
//Put stuff in buf and do whatever until
*ptr++ = buf;

答案 1 :(得分:1)

你的代码如下:

int a[10];
a++; // error: lvalue required as increment operand

您无法在阵列上应用运算符++。创建一个指向数组的指针,然后递增该指针。

char **p = &arguments[0];
*p++ = buf;