我正在尝试做如何在运行时指定数组?
基本上,我已经得到了我定义与宏几种可能的排列:
#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