我试图将方法的返回值复制到int数组中。 (方法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;
}
答案 0 :(得分:0)
符号tmp
的行为类似于int指针。
你甚至不能从一个函数返回一个数组,只是一个指针:
int *getPixelCOlor(...
memcpy(temp, getPixelColor(width, height, x, y), sizeof temp);
getPixelColor返回本地自动存储的地址,该地址通常位于其堆栈帧中,并将随后的任何函数调用一起销毁。就像你自己的memcpy
一样。这是龙。