欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STL string类的使用

程序员文章站 2022-03-23 14:58:39
...

1.慎用memcpy

struct A
{
    string s;
    int i;
};

void fun(struct A* pSrc)
{
    struct A pDest;
    memcpy(&pDest, pSrc, sizeof(struct A));
} 

问题在于,memcpy完全是按照内存基于第三个参数指定的字节数来拷贝,对于简单数据类型(非指针)是完全适用的。但是上面结构体中的string,实质是浅拷贝。这样做,存在两次析构string的问题。

解决方案:单个结构体成员逐一拷贝;写拷贝构造函数。

同样,memset也不能使用。