免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5056 | 回复: 11
打印 上一主题 下一主题

请问怎样在循环结束后给结构体重新赋值???(急) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-01 20:10 |只看该作者 |倒序浏览
我定义了几个结构体类型:
  比如STUDENT, NUMBER, ……
   在一个结构体中包含另外结构的指针。

在程序开始时先将结构体赋值;
    STUDENT stu ={0};
      NUMBER  nmb={0};
     ……
    for(i=1;i<=n;i++)//循环开始
    {      
      stu.xxx.yyy ;           //进行运算
      ……
      ……
       stu={0};              //  ?这样肯定不行?怎样才能重新给stu重新赋0值,因为结构体比较大,一个个的赋值太繁琐。怎样才能让所有的结构体重新赋值?

    }
     free_stu(&stu);        //释放空间,在循环体外面。





将最上面的定义结构体时赋值放在循环体里面也肯定不行?是吧?

急!!!!!

论坛徽章:
0
2 [报告]
发表于 2004-03-01 20:23 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

原帖由 "tide_lll" 发表:
我定义了几个结构体类型:
  比如STUDENT, NUMBER, ……
   在一个结构体中包含另外结构的指针。

在程序开始时先将结构体赋值;
    STUDENT stu ={0};
      NUMBER  nmb={0};
     ……
    for(i=1;i<..........


1。 问:开始的时候 STUDENT stu = {0} 能把结构清零吗?
2。 一个一个赋值不见得就慢,如果你不喜欢,可以 memset (&stu, 0, sizeof (stu));

论坛徽章:
0
3 [报告]
发表于 2004-03-01 20:23 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

void *memset( void *dest, int c, size_t count );
具体查看memset

论坛徽章:
0
4 [报告]
发表于 2004-03-01 20:38 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

1.开始的时候是将变量定义为STUDENT可以给他所有赋值0即STUDENT stu={0}:
2.因为一个结构体里面还有别的结构体类型的变量,一个一个赋值我觉得做不起。

如果用memset()还用不用free(),在前面还是在后面?可以一次将这种结构类型的变量的所有元素都赋0么?谢谢

论坛徽章:
0
5 [报告]
发表于 2004-03-01 20:41 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

void *memset( void *dest, int c, size_t count );

这里是把变量都赋整数c的值,可以将结构体里面的元素赋零么?如果是字符型的元素或是其他的怎么?

论坛徽章:
0
6 [报告]
发表于 2004-03-01 20:58 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

原帖由 "jamesqiao" 发表:
void *memset( void *dest, int c, size_t count );
具体查看memset



错误信息:
Type struct student_struct  of this argument  is incompatible with type void *  of function prototype description
memset(stu,0,sizeof(STUDENT));
-------^

是不是因为各元素类型不一样?应该怎么办?

我用memset(&stu,0,sizeof(STUDENT)); 才可以,但这样的话是不是元素都为0了呢?

论坛徽章:
0
7 [报告]
发表于 2004-03-01 21:22 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

我用memset(&stu,0,sizeof(STUDENT)); 才可以,但这样的话是不是元素都为0了呢?

你把那一块内存都设置为0,你说是不是所有的元素都为0了。

论坛徽章:
0
8 [报告]
发表于 2004-03-01 21:31 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

原帖由 "tide_lll" 发表:
我定义了几个结构体类型:

    STUDENT stu ={0};
      NUMBER  nmb={0};
     ……
    for(i=1;i<..........


如果我在循环体外面用一个函数体通过屏幕输入给结构体的一些元素初值,循环结束前,我想把循环中结构体中元素变化的部分赋值0,而在开始给初值的结构体元素保持原来的初值,也就是不用反复屏幕输入了。怎么做?

谢谢各位。

论坛徽章:
0
9 [报告]
发表于 2004-03-02 08:16 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

定义两个结构

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2004-03-02 08:55 |只看该作者

请问怎样在循环结束后给结构体重新赋值???(急)

原帖由 "tide_lll" 发表:


如果我在循环体外面用一个函数体通过屏幕输入给结构体的一些元素初值,循环结束前,我想把循环中结构体中元素变化的部分赋值0,而在开始给初值的结构体元素保持原来的初值,也就是不用反复屏幕输入了。怎么做?
..........

你不是还是要判断哪些值变化了,
哪些值没变嘛。
你不一个一个判断,想怎么判断?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP