我正在尝试交换一个结构数组,我认为遵循类似的方式存储在temp中会像这样工作:
int temp ,a, b;
temp = a;
a = b;
b = temp;
我的结构定义数组是:
struct storage data[10];
我试图交换一组结构,我试过这个:
struct storage temp[1];
temp = data[1];
data[1] = data[2];
data[2] = temp;
不幸的是,它没有编译
我的错误如下:
错误#2168:'='的操作数具有不兼容类型的struct storage [1]'和'struct storage'。
错误#2088:需要左值。
错误#2168:'='的操作数具有不兼容类型'struct storage'和'struct storage *'。
答案 0 :(得分:5)
在C数组中不是可修改的左值。删除[1]
,然后设置:
struct storage temp;
答案 1 :(得分:1)
您正试图保留一个结构存储,当您说
时,您将取消引用该结构存储temp = data [1];
您需要声明临时变量,以保存数组中的解除引用值
struct storage temp;