gpt4 book ai didi

c - 使用 for 循环中每次迭代都会更改的字符串作为 vector 的名称

转载 作者:行者123 更新时间:2023-11-30 16:49:41 27 4
gpt4 key购买 nike

我想在c中的循环中使用指针分配内存。我找到了类似问题的答案,但没有找到这个特定问题的答案。例如

char name_bin[50]; 
for (int i=0; i<NB; i++) {
sprintf(name_bin, "bin_vector%d", i);
double *name_bin = (double *) malloc(sizeof(double) * NGMAX);
}

我似乎找不到办法做到这一点。我想要大小为 NGMAX 的 NB 数组,全部具有不同的名称,bin_vector0 等有人告诉我这是可能的,因此非常欢迎任何帮助。

最佳答案

您无法使用运行时派生的名称创建新变量。在 C 语言中,实现这一点的方法是使用将字符串与对象关联起来的表。该表的实现方式取决于您,具体取决于您的要求以及您愿意处理的复杂程度。对于少量名称,链表可能就足够了。对于大量名称,您可能需要树或哈希表。

但是,您的特定问题可以通过一个简单的数组来解决。

double *bin_vector[NB];

然后,您可以使用 bin_vector[5] 引用第 6th 个 bin。

关于c - 使用 for 循环中每次迭代都会更改的字符串作为 vector 的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com