免费注册 查看新帖 |

Chinaunix

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

结构体赋值0 [复制链接]

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-04 20:16 |只看该作者 |倒序浏览
怎样为结构体全部赋0??比如:

struct _str_
{  
  char a[10];
  char b[50];
  char c[3];
  char d[30];
  int  e;
}  test;

不能用下面方法:
1. memset()
2. for()或while()语句
3. 汇编

论坛徽章:
0
2 [报告]
发表于 2008-09-04 20:20 |只看该作者
全局

论坛徽章:
0
3 [报告]
发表于 2008-09-04 20:20 |只看该作者
定义为全局变量

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
4 [报告]
发表于 2008-09-04 20:30 |只看该作者
struct _str_
{  
  char a[10];
  char b[50];
  char c[3];
  char d[30];
  int  e;
}  test={0};

这样?但问题是这个只能清除一次。
假如第二次要用这个test变量,但这个变量先要赋值为0,那怎么办?

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
5 [报告]
发表于 2008-09-04 20:36 |只看该作者
用memcpy可以吧

论坛徽章:
0
6 [报告]
发表于 2008-09-04 20:42 |只看该作者
为什么不能用memset

BSD有个bzero,不过不是ANSI C

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
7 [报告]
发表于 2008-09-04 20:46 |只看该作者
呵呵,这个也是其中一个不能用的,不要用函数,还有其他方法吗?

论坛徽章:
0
8 [报告]
发表于 2008-09-04 21:10 |只看该作者
虽然这是个很无聊的要求,但还是有很无聊的解决方法

  1. struct test
  2. {
  3.    int a;
  4.    int b;
  5. } zero;

  6. int main()
  7. {
  8.    struct test xx = zero;
  9.    
  10. }
复制代码

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
9 [报告]
发表于 2008-09-04 21:18 |只看该作者
不明白你的表达式意思

其实我是想看看除了上面提到的方法以外,还有没有其他方法达到这个目的

论坛徽章:
0
10 [报告]
发表于 2008-09-04 21:29 |只看该作者

回复 #1 chenzhanyiczy 的帖子

结构体内能放构造函数吧?用构造函数初始化结构体?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP