从数组中访问变量全局结构

时间:2016-04-24 06:21:01

标签: c function variables pointers

我有一个函数,用于从不同的全局结构中提取数据。所以,我试图将一个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中使用字符串变量作为数组的名称。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

C中没有办法在char *中检索名称的变量。

char *中给定字段名称的情况下,C无法检索结构变量的字段值。

C不是JavaScript。