c - "Variable"C 中的变量名

标签 c variables dynamic names

我认为我正在寻找的东西实际上在 C 中是不可能的,但也许有些人知道如何解决它:

我需要处理一些输入数据。该数据以 int 形式给出,给出了数据的数量和保存实际数据的字符串数量(即 char *)。这些字符串被命名为 data_0 ... data_n:

 int n = 42; // the number of strings
 char *data_0 = "some input1";
 char *data_1 = "some input2";
 ....
 char *data_41 = "the last input data";

这就是我获取数据的方式。现在的问题是:我该如何处理它?我的目标是将它们存储在一个大数组中。初始化这个数组当然很简单,我只需要一个用 malloc 获得的 n char-Pointer 数组。 但后来我想将这些字符串分配到数组中。这就是我陷入困境的地方。我需要动态分配它们,因为我之前不知道它们的大小。 像这样的东西:

 for(i = 0; i < n; i++)
      datastorage[i] = data_i;

所以我的意思是动态访问变量名。我希望你明白我的意思:) 谢谢。

最佳答案

首先将其设为数组!如果您必须将它们作为数组进行访问,那么拥有 42 个单独的变量绝对没有意义!顺便说一句,在 C 中,变量名称在运行时不可用,它们在编译后就会丢失,因此忘记通过名称动态访问变量。

int n = 42; // the number of strings
char *data[42];
      data[0] = "some input1";
      data[1] = "some input2";
....
      data[41] = "the last input data";

for(i = 0; i < n; i++)
    datastorage[i] = data[i];

关于c - "Variable"C 中的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5430280/

相关文章:

javascript - 如何禁止使用开发人员工具更改变量

java - 在 Android 中动态实例化按钮

php - 进入动态领域的更好方式?

c - 关于文件 I/O(读/写消息字符串)的很多问题

c - 我的 C 程序的浮点异常

c - 整数的值突然改变

c - atomic_cas_64() 在 Solaris on Sparc 上的内部实现?

c# - 变量初始化/声明中的逗号

c++ - Arduino/C++ 交叉函数变量

c# - 按名称检索文本框