2012-04-02 169 views
1

我有以下錯誤我得到了錯誤C2440:

錯誤C2440:初始化:不能轉換從 '常量詮釋' 到 '廉政 [16]'

我的代碼是這樣的

static int Count[MAX_STATION_NO] = 0; 

我上面的錯誤。有人能告訴我上述行中有什麼問題嗎?

+0

你可能想:'靜態詮釋計數[MAX_STATION_NO] = {0}'; – Mysticial 2012-04-02 09:09:56

回答

0

您正在將數組視爲指針,這是非法的。您不能將數組分配給某個值。

也許你想這樣的:

static int Count[MAX_STATION_NO] = {0}; 
+0

謝謝Luchian先生,你解決了我的問題 – Vaibhav 2012-04-02 09:15:02

0

要創建陣列和陣列值設置爲「0」。我想你希望做的是:

static int Count[MAX_STATION_NO] = {0} 
+0

不,他沒有將數組值設置爲0.他的代碼只是非法的。 – 2012-04-02 09:11:30

+0

是的,我明白這一點。我的意思是,代碼暗示它將數組的值設置爲一個整數,導致數據類型不匹配,然後繼續根據我認爲他實際上希望做的事情給出解決方案。 – 2012-04-02 09:14:43

+0

你的表述仍然錯誤和誤導。 – 2012-04-02 09:16:05

0

你的初始化需要在大括號:

static int Count[MAX_STATION_NO] = { 0 }; 

BTW:靜態數組有自己的內容初始化爲0反正所以你上面的等價於:

static int Count[MAX_STATION_NO]; 
0

該行聲明一個大小爲16的數組,然後給它指定一個數字,這在句法上是不正確的。您需要使用數組初始化:

{ 16, 2, 77, 40, 12071 ... } 
0

大括號{}需要初始化數組。 如:

static int Count[MAX_STATION_NO]={1,2,3}; 

也許這個鏈接可以幫助你:http://www.cplusplus.com/doc/tutorial/arrays/

+0

這是C++ 11 systax。很多編譯器(在VS2010之前)在初始化列表之前需要'='。 – harper 2012-04-02 12:56:18

+0

哦,當然我會編輯它。感謝您指出 – 2012-04-03 04:02:39