目前,我的工作代码如下所示:
char input[4][10] = {ARR1, ARR2, ARR3, ARR4};
显然,我正在使用这些一维数组创建一个二维数组,这些一维数组是在其他地方定义的常量。但是,我需要更改此代码,以便它从文件中读取所需的一维数组的名称并相应地初始化二维数组。
例如,如果文件包含:
ARR9 ARR3 ARR5 ARR7
然后初始化将像这样运行(假设所有这些数组都已定义):
char input[4][10] = {ARR9, ARR3, ARR5, ARR7};
我从文件中读取数据没有问题,但在创建二维数组以及使用从文件中读取的值作为数组名称时遇到困难。
最佳答案
C 没有 introspection或reflection ,所以这实际上是不可能的。
但是,您可以拥有一个转换表,将字符串 "ARR1"
、"ARR2"
等转换为实际的字符串数组,然后您可以将实际数组中的内容复制到 input
条目中。或者,您可以拥有一个指针数组,然后将指针设置为指向正确的数组,而不是像现在这样拥有一个数组的数组。
关于c - 具有预定义一维数组的二维数组的动态输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471262/