2012-04-25 106 views
0

我想用一些值填充結構中包含的數組,但不管我嘗試什麼,都會收到錯誤。在結構c中填充數組#

我的結構看起來像在初始化我創建一個新的boardState並試圖用這樣的

boardState _state_ = new boardState(); 
     _state_.structid = 1; 
     _state_.state[9] = {'o','-','-','-','o','-','-','-','-','o'}; 

structid一些值來填充它這個

public struct boardState 
    { 
     public int structid; 
     public char[] state; 
    } 

波紋管似乎做工精細,但是我在{'o',' - '等等}告訴我一個錯誤。預期'。我已經通過上面的代碼,並確保沒有;缺少(由沒有這條線運行的程序確認),所以我猜你不能以這種方式分配給數組。我怎樣才能分配給狀態數組?

編輯: - 添加了我錯過的逗號,但仍然得到相同的錯誤。

+2

注意:請考慮使用類而不是結構。或者請確認您知道在C#中使用struct有什麼後果(0123)嗎? – 2012-04-25 23:54:44

+1

我只需要說我同意阿列克謝,並補充說,你有一個可變的結構,這通常被認爲是一個壞主意。而且,通過在結構中有一個對象,結構的大部分用途都消失了。 – Guffa 2012-04-26 00:09:25

回答

2

你不需要[9]。它試圖將一個數組分配給一個字符。相反,只是用這個:

_state_.state = new char [] {'o','-','-','-','o','-','-','-','-','o'}; 
+0

非常感謝,現在工作正常。 – 2012-04-25 23:56:50

+0

@E_S我很高興我能幫上忙。考慮將答案標記爲已接受。 – 2012-04-26 00:01:08

2

您錯過了逗號並且語法關閉。

來源:

_state_.state[9] = {'o','-','-','-','o','-','-','-','-''o'}; 

要:

_state_.state = new char [] {'o','-','-','-','o','-','-','-','-','o'}; 
+0

謝謝你指出。我已經添加了逗號,但我仍然收到相同的錯誤 – 2012-04-25 23:53:53

+0

請考慮閱讀完整答案,而不僅僅是前兩行...... – 2012-04-26 00:10:39