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