【发布时间】:2014-11-17 06:06:27
【问题描述】:
我试图将一个方法的返回值复制到一个整数数组中。 (getPixelArray 方法返回一个大小为 3 的 int 数组。)下面是我的代码的违规部分。当我尝试编译这段代码时,我得到了错误
invalid lvalue in unary '&'
会发生什么?我正在听从this 答案的建议。
int temp[3];
memcpy(&temp, &(getPixelColor(width, height, x, y)), sizeof(temp));
编辑:方法如下。
int[3] getPixelColor(int width, int height, float x, float y) {
int color[3] = {0, 0, 0}; // color of pixel
// get color (omitted)
return color;
}
【问题讨论】:
-
(getPixelColor(width, height, x, y))不是左值 -
请贴出
getPixelColor()的代码或者至少是它的函数原型。 -
对不起。我已经发布了函数的骨架。
-
这段代码完全是错误的。您不能返回数组(也不能返回指向本地自动变量的指针)。而且你可以从不将函数的返回值视为 C 中的左值。
标签: c arrays pointers memory memcpy