2013-10-30 106 views
-1

返回元件我需要從一個結構數組返回一個元素。我得到的錯誤,所以我想知道如何做到這一點:從一個結構數組

-(struct Point3D)getMyColor 
{ 
    struct Point3D 
    { 
     int x; 
     int y; 
     int z; 
    }; 
struct Point3D points[15] = 
    { 
     {204, 74, 110}, 
     {118, 56, 198}, 
     {175, 122, 231}, // I WANT TO RETURN THIS ONE TO THE CALLER 
     {3, 197, 47}, 
     .... 

    } 

return WHAT? // (points[4] give error) 
} 
+1

你確定這是C代碼?不是Objective-C? –

+0

你應該發佈你正在尋找幫助的代碼。正如你所說的,「點[2]」實際上是對@Palec的回答評論的點[19],那麼有人可以幫助你嗎? – Thanushan

回答

2

最大的問題是你定義的構造函數內部,這意味着它不是可能從外面使用它。

首先,結構定義移動到某個地方,通常是主叫可以使用它,然後按照其他答案的建議。


順便說一句,你有未定義行爲在你的代碼爲好。您聲明數組points包含結構,但與對其進行初始化,從而覆蓋編譯器爲數組分配的空間。

+0

但我確實希望它是私人的..有沒有辦法返回3私人價值?或者我必須設置一個3d數組? – Curnelious

+0

@Curnelious在這種情況下,我建議你傳遞一個數組作爲參數的函數,然後該數組與正確的價值觀填寫。你不能在函數外部使用結構,即使是返回類型。來電者如何能夠知道它是什麼? –

+0

好,非常感謝。 – Curnelious

0

應返回第三個元素,這是points[2] ...

0
return points[4]; 

給你一個錯誤,因爲你是試圖訪問該項目上的索引4,而你的項目有索引0,1,2和3。所以,你要

return points[2]; 
+0

這其實是錯誤的。我寫了4只爲示範,陣中擁有19個價值觀,我試圖去5所以其挑釁不是問題 – Curnelious

+0

@Curnelious不解不良示範。 Joachim Pileborg正確地發現了主要問題。 – Palec

相關問題