2013-02-27 121 views
0

我有一個外部變量char myArr[3],我試圖給它分配一些東西。例如,在我的函數中,我有myArr[3] = {1,2,3}。編譯器告訴我,我有「意外的標記:=」,但只要我在本地聲明瞭我的變量(myArr[3] = {1,2,3}),錯誤就會消失。我試圖掩蓋我的函數內部的外部變量,但沒有結果。C - 無法將數據分配給全局變量

char myArr[3]; 

void my func(){ 
    myArr = {1,2,3} 
} 
+1

您要設置一個字符數組。 – Dmitry 2013-02-28 00:00:54

+2

請發佈真實的代碼。 (你是否缺少分號?) – wildplasser 2013-02-28 00:01:18

+0

@Dmitry它只是一個字符數組。只要我在本地執行,錯誤消失 – 2013-02-28 00:01:40

回答

3

當你

char myArr[3] = { 1, 2, 3} 

您正在創建的3個字符數組,並分別將它們設定爲值1,2和3。

當你

myArr[3] = { 1, 2, 3 } 

您要設置myArr[3](這是由方式的三個字符數組第四性格;你要「出界」)來{ 1, 2, 3 }哪些沒有意義。在C中,你不能像這樣設置數組:這是一個語法錯誤。

如果你想你的陣列設置爲值1,2和3試試這個:

myArr[0] = 1; 
myArr[1] = 2; 
myArr[2] = 3; 
+0

啊哈!我不知道我在想什麼。漫長的一天人..漫長的一天! – 2013-02-28 00:09:22

+0

我不明白 - 你能證明你做了什麼嗎? – 2013-02-28 00:14:08

+0

聲明一個局部變量,並在我的函數結束,使我的全球=我的本地。例如,如果我在我的函數中執行了char myLocalArr [3],然後myArr = myLocalArr。我仍然會得到一個錯誤 – 2013-02-28 00:15:02