我有一个函数,用于从不同的全局结构中提取数据。所以,我试图将一个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()
代码只是给出错误:&#34;请求成员&#39;数组&#39;在某种结构或联合的东西中。
理想情况下,我的代码会在主函数2300中返回分配给HR [1] .beats的值。
我相信我的思路可能有问题,试图在c中使用字符串变量作为数组的名称。谢谢你的帮助!
答案 0 :(得分:1)
C中没有办法在char *
中检索名称的变量。
在char *
中给定字段名称的情况下,C无法检索结构变量的字段值。
C不是JavaScript。