我正在嘗試做如何在運行時指定數組?
基本上,我已經得到了我定義與宏幾種可能的排列:
#define ARRAY_ONE {0, 2, 7, 8}
#define ARRAY_TWO {3, 6, 9, 2}
#define ARRAY_THREE {3, 6, 4, 5}
//etc...
在運行時,我有被中使用的C-陣列很多地方在某個班級。我想這個陣列使用的#define值之一,即:
int components[4];
if (caseOne)
{
components = ARRAY_ONE;
}
else if (caseTwo)
{
components = ARRAY_TWO;
}
else if (caseThree)
{
//etc...
}
-
的問題
然而,上面的代碼不起作用。相反,我得到一個奇怪的錯誤
Expected expression before '[' token
會有人心中解釋這是怎麼回事,我怎麼能做到什麼,我試圖?任何幫助將不勝感激 - 謝謝!
這完全正確。我能想到的最明顯的解決方案是使用'memcpy'將所需的數組複製到組件中。 – Tommy
啊!我明白了以前的答案,現在想說的是,在我的情況下,使用上面的指針似乎是一個很好的解決方案。謝謝! –
更確切地說,C中的變量除聲明時外無法初始化。之後,您只需簡單地分配它們,而不能分配C數組。 – Chuck