gpt4 book ai didi

c - 将返回值分配给 int 数组

转载 作者:行者123 更新时间:2023-11-30 17:25:50 28 4
gpt4 key购买 nike

我正在尝试将方法的返回值复制到整数数组中。 (方法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;
}

最佳答案

符号tmp的行为类似于int指针。

你甚至不能从函数返回一个数组,而只能返回一个指针:

int *getPixelCOlor(...

memcpy(temp, getPixelColor(width, height, x, y), sizeof temp);

getPixelColor 返回本地自动存储的地址,该地址通常位于其堆栈帧中,并且将随着任何后续函数调用而被销毁。就像您自己的 memcpy 一样。这里有龙。

关于c - 将返回值分配给 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966521/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com