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