我有一个函数可以用来从不同的全局结构中提取数据。所以,我试图将一个 char 数组传递给函数,该函数告诉函数要从哪个全局结构中提取(通过命名)。但是,我无法让它按预期工作! (我是 C 的初学者)。
示例代码:
#include<stdio.h>
// linear interpolation
float linearInterp(int userTime, char* structure[], char* array[])
{
printf("%d", structure[1].array);
} // end float linearInterp()
struct heartRate
{
int time;
int beats;
char units[8];
} HR[50];
int main()
{
float val1;
HR[1].beats = 2300;
char beating[6] = "beats";
char *p = beating;
char hring[3] = "HR";
char *ph = hring;
val1 = linearInterp(5, beating, hring); // note: attempted with both p and ph vs beating and hring
} // end int main()
代码只是给出了错误:“请求成员‘array’不是结构或 union 。
理想情况下,我的代码会在主函数中返回分配给 HR[1].beats 的值 2300。
我认为我的思路可能有问题,试图将c中的字符串变量用作数组的名称。感谢您的帮助!
最佳答案
在 C 语言中无法检索在 char *
中给定变量名称的变量。
在给定 char *
中的字段名称的情况下,C 无法检索结构变量的字段值。
C 不是 JavaScript。
关于c - 从数组中访问变量全局结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36819957/