[c++] 结构体中有类类型时请不要使用memset来初始化结构体

前言:

c++对比c,引入了类,我们可以将类放到结构体中,但是在初始化的时候不可以使用memset,这会破坏类的内部结构,可能会造成崩溃乱码等一系列问题。

解决:

定义结构体的构造函数来完成初始化,比如:

struct A{
    string id;
    string name;
    int salary;
    char* pc;
    int a[100];

    A(){
        id="";
        name="";
        salary=0;
        pc = NULL;
        memset(a,0,sizeof(a));
    }
}

int main()
{
    A* pa = new A();
}

猜你喜欢

转载自blog.csdn.net/ykun089/article/details/107066861