2017-09-14 79 views
0

我有一大堆我想添加到數組的不同行的大整數。這些整數定義如下:將定義的元素賦值給2D數組C

#define APARTMENT1_USAGES {0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0.189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.111, 0, 0, 0.000, 0, 0, 0, 0, 0, 0.065, 0.167, 0, 0, 0, 0.048, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0} 
    #define APARTMENT2_USAGES {0, 0, 0, 0, 0, 0, 0, 0.130, 0, 0, 0, 0, 0, 0.176, 0, 0.125, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.161, 0.000, 0.039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0.000, 0.109, 0, 0.032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.152, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0.135, 0, 0, 0, 0, 0, 0, 0, 0, 0.100, 0, 0, 0.063, 0, 0, 0, 0, 0.000, 0, 0.025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0.000, 0, 0, 0, 0, 0, 0.378, 0, 0.147, 0.229} 
    #define APARTMENT3_USAGES {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0.01, 0.01, 0.02, 0.03, 0.03, 0, 0, 0, 0, 0.088, 0, 0} 

我已經縮短這些只是爲了顯示這個想法,他們通常是30x24的元素。 我想要做的是將每個這些加載到一個二維數組的行中,但得到一個語法錯誤沒有解釋。我如下已經嘗試過了:

double apartmentUsage[3][30*24]; 
apartmentUsage[1][30*24] = APARTMENT1_USAGES; 
apartmentUsage[2][30*24] = APARTMENT2_USAGES; 
apartmentUsage[3][30*24] = APARTMENT3_USAGES; 
+2

'雙apartmentUsage [3] [30 * 24] = {APARTMENT1_USAGES,APARTMENT2_USAGES,APARTMENT3_USAGES};'。您必須在初始化中執行此操作。 – mch

回答

0

一個你所面臨的誤區如下: 如果定義array[3],你可以存儲在array[0]array[1]array[2]三個值。 在你的代碼中。其定義爲apartmentUsage[3][..],但以1開頭。 應該像這個 -

int multiply=30*24; 
apartmentUsage[0][multiply] = APARTMENT1_USAGES; 
apartmentUsage[1][multiply] = APARTMENT2_USAGES; 
apartmentUsage[2][multiply] = APARTMENT3_USAGES; 

**BUT**這也不能完全解決問題。嘗試在初始化本身指出評價做 - double apartmentUsage[3][multiply] = {APARTMENT1_USAGES, APARTMENT2_USAGES, APARTMENT3_USAGES};

+1

使用'30 * 24'可能比使用'multiply'更可取,因爲後者將數組變成VLA(可變長度數組),而前者使它成爲一個規則的固定大小的數組。 –