2012-08-23 98 views
1

我試圖交換結構的數組,我想在之後的臨時存儲的類似的方式將工作是這樣的:交換結構元素的數組與其他元素

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; 

UNF ortunately,它不編譯

我的錯誤是以下:

錯誤#2168:的「=」具有不兼容的類型的操作數「結構存儲[1]」和「結構存儲」。

錯誤#2088:需要左值。

錯誤#2168:'='的操作數具有不兼容的類型「結構存儲」和「結構存儲*」。

回答

5

在C數組中不能修改左值。放下[1]和你設置:

struct storage temp; 
+0

謝謝!偉大的作品 – Dog

1

您正在試圖抓住你時,你說取消引用一個結構存儲

TEMP =數據[1];

需要聲明的臨時變量,例如從數組

結構儲存溫度保存取消引用值;

+0

謝謝!效果很好 – Dog