1

这是代码片段。

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

似乎 *arguments++ 正在抛出错误,为什么这无效?

4

2 回答 2

2

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

char *arguments[ARGSIZE];
char **ptr = &arguments[0];
char *buf;
//Put stuff in buf and do whatever until
*ptr++ = buf;
于 2013-11-11T10:47:21.390 回答
1

你的代码如下:

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

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

char **p = &arguments[0];
*p++ = buf;
于 2013-11-11T10:47:53.380 回答