c - 在 C 中声明一个包含另一个变量内容的变量名

标签 c variables dynamic names

我正在从事一个项目,该项目要求我使用预先确定的前缀和数字来命名结构数组变量。该程序以一个如下所示的数组开始:

foo[elements]

我需要这样声明:

foo1[elements+1]

我不能只声明 foo1[elements+1],因为没有预定数量的新数组具有更大的内容,因为我将通过一个循环进行迭代。如果我需要提供更多信息,或者如果我没有清楚地提出我的问题,请告诉我。我不知道这是否可能,但如果可能的话,它肯定会缩短我的时间。

最佳答案

在 C 语言中,编译时必须知道变量名。无法在运行时创建新的变量名。语言不对。

你最好的选择是分配一个数组来保存你的数组:

int ** foo = calloc(sizeof(*foo), numarrays);
for (i = 0; i < numarrays; i++)
    foo[i] = calloc(sizeof(**foo), elements + i);

关于c - 在 C 中声明一个包含另一个变量内容的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101791/

相关文章:

c#-4.0 - 在 C# 中在运行时更改命名空间

c - 以下C语言代码有什么问题?

c - C 中的 read 函数不会终止

c - 运行时无输出 行计数

perl - 在 Perl Web 应用程序中, "our"变量在不同的 Web 请求响应中共享?

java - 将多个触发器添加到单个 quartz 作业

c++ - 如何检查文件是否为常规文件?

node.js - 分配给 node.js 变量的值返回奇怪的值

c++ - 警告 : uninitialized variable//But I have initialized ! C++ 编译器错误?

javascript - 如何确保 JQuery 正确地动态注入(inject) CSS 并准备好使用?