注册 登录
编程论坛 C++教室

关于嵌套结构体变量的访问

blackneo 发布于 2012-03-29 23:30, 625 次点击
各位大大,有个问题一直解决不了,求各位帮助:
在头文件a.h中定义并声明了嵌套结构体如下:
struct fuzzy
{
    float stb_in[7];                                          
    float stb_out[15];  
};
struct furnace
{
    struct fuzzy fuzzy_tab [2][7][5];
};
extern struct furnace furnace[1];
在b.cpp文件对该结构进行了定义
struct furnace furnace[1];
但在对结构变量进行赋值是却找不到变量,如下:
furnace[0].fuzzy_tab[0][0][0].stb_in[0] = -15.f;

好像该结构体的stb_in[0]根本就不存在,是不是定义有问题啊!
谢谢
3 回复
#2
rjsp2012-03-30 08:18
但在对结构变量进行赋值是却找不到变量,如下:
furnace[0].fuzzy_tab[0][0][0].stb_in[0] = -15.f;

------- 你在说什么?是不是编译报找不到某某变量的信息?如果是,贴出编译器给出的错误信息。
#3
blackneo2012-03-30 09:25
编译没有问题,能通过,就是在程序运行时无法给该变量赋值!
通过watch窗口监控显示:furncae.fuzzy_tab???, "无法评估的表达式"。
如果在头文件中不用嵌套结构,如在a.h中写成如下格式并用extern声明:
struct fuzzy
{
    float stb_in[7];                                          
    float stb_out[15];  
};
extern sturct fuzzy furnace[1][2][7][5];
在b.cpp中定义
sturct fuzzy furnace[1][2][7][5];
再进行赋值
furnace[0][0][0][0].stb_in[0]=-15.f
这样是没有问题的。
为何嵌套结构无法进行声明和定义?
谢谢

#4
blackneo2012-03-31 11:12
问题已经解决,谢谢大家!
1