首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

保存结构体内容有关问题

2012-03-09 
保存结构体内容问题请问各位高手我有这样的一个问题:我有一个函数执行完后,需要结构体A a里的参数值保存下

保存结构体内容问题
请问各位高手
我有这样的一个问题:
我有一个函数执行完后,需要结构体A a里的参数值保存下来,因为函数是循环执行的,因此需要保存多个a的参数值
因此我觉得在函数外设置一个结构体B(与A中定义的参数一样),并定义B b[N],如何将a的值分别保存到b[i]中?
1)是否可以直接b[i]=a;
2)如果用指针的方式实现,是否可以B *b;*b = malloc(N*sizeof(b));*(b+i)=a;
谢谢!!!!!!!!!!!!!!!!!!!!!

[解决办法]
1、可以。但是不能像这样来保存 b[i] = a; 因为这样相当于A、B两个结构体可以相互赋值了。可以在B结构体里面定义一个A结构体的数组,然后用这个数组来

保存多个A结构体的数据

2、当然也可以用指针的方式来实现,而且可以new空间给B,但是不能这样用*(b+i) = a; 理由和 1 一样,这样的A和B实际上是一个结构体
[解决办法]
不能直接用结构变量来赋值。
你应该使用.操作符或者->操作符引用成员变量,分别赋值。
eg. struct A{int a;char b}a1;
struct B{int a;char b}b1;
b1.a=a1.a;
b1.b=a1.b;
[解决办法]
第一个和第二个都应该可以吧.
[解决办法]
同一结构类型的变量之间是可以直接赋值的。但像你所描述的那样,A和B好象不是同一结构类型。

另外,如果你的程序只是要用到A a上次的值的话,可以将a设为static的;当然如果程序需要的话就设为全局的。

热点排行