memset

本文介绍了如何使用memset函数初始化结构体变量,并强调了对于含有虚函数的类不能使用memset进行初始化的原因。此外,还提供了代码示例说明了memset在结构体变量清零中的应用。

【分析】

 C++ Code 
1
 
void *memset(void *s, int v, size_t n);

是否可以用memset来初始化一个类?

如果Class有虚函数,绝对不要用memset初始化,会导致vptr出异常,而无法调用virtual函数。其它情况则可以。

memset可以方便的清空一个结构类型的变量或数组。

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
struct student
{
    
char name[20];
    
int age;
    
int id;
};

void test_memset()
{
    
struct student s;
    s.name[
0] = '\0';
    s.age = 
0;
    s.id = 
0;

    
struct student s2;
    memset(&s2, 
0sizeof(struct student));
}

【参考】

http://hi.baidu.com/mecoring/item/3c8e4b3fbb9d9e4e023edcfa

转载于:https://www.cnblogs.com/hellogiser/p/memset.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值