【问题标题】:how to define a global "struct" variable in C如何在 C 中定义全局“结构”变量
【发布时间】:2012-05-08 12:10:32
【问题描述】:

我想定义一个由 struct 创建的全局/公共变量。我无法访问 main 或任何其他函数中的 user_list.x 或 y/z。当我调试下面的代码时,我收到以下错误“在不是结构或联合的东西中请求成员'x'”。如何声明可以从不同函数访问的全局结构变量?谢谢

#include <stdio.h>
#include <stdlib.h>

struct routing {
        int x;
        int y;
        int z;
};
struct routing user_list[40];

int main(int argc,char *argv[])
{

    user_list.x = 1;
    printf("user_list.x is %d",user_list.x);
    return 0;
}

【问题讨论】:

    标签: c struct global


    【解决方案1】:

    您使用的是 struct 对象数组,而不是 struct 对象。

    指定要访问的数组成员:

    int i = 0;
    
    user_list[i].x = 1;
    printf("user_list[i].x is %d",user_list[i].x);
    

    【讨论】:

      【解决方案2】:

      你必须通过索引来访问你的数组。

      试试

      user_list[i].x = 1;
      printf("user_list[i].x is %d",user_list[i].x);
      

      i 是您的索引(之前定义或“常量”)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        • 2016-05-07
        • 1970-01-01
        相关资源
        最近更新 更多