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

标签 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()

代码只是给出了错误:“请求成员‘array’不是结构或 union 。

理想情况下,我的代码会在主函数中返回分配给 HR[1].beats 的值 2300。

我认为我的思路可能有问题,试图将c中的字符串变量用作数组的名称。感谢您的帮助!

最佳答案

在 C 语言中无法检索在 char * 中给定变量名称的变量。

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

C 不是 JavaScript。

关于c - 从数组中访问变量全局结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36819957/

相关文章:

c++ - 在 C++ 中将函数作为参数传递给模板?

c++ - 在我的实现中使用堆栈是否正确?

function - Powershell函数抛出空异常

JavaScript 变量保护

php - 我可以使用 GET 方法中的变量来获取 mysql 数据吗?

Python 变量赋值

c - 几个 Eclipse C/C++ 问题

检查文件是否只有 C 语言的字母字符

c - 样板 CRT 函数 matherr 有什么意义?

c - 为什么在 C 中对动态链接的符号执行指针运算时会得到错误的结果?