【C++】自定义类型还敢用memcpy吗?

气死我啦!调了一下午+一晚上的bug,结果是因为memcpy浅拷贝问题,给我都整无雨了。

1710725206244.webp

之前一直是引发异常,我debug了一下是到自定义类型析构函数处引发的异常。应该就是释放了已经释放的内存导致的问题。

可是一直没有意识到是memcpy的锅,搜了搜才知道,原来就是这小子的毛病。

解决方法是什么?直接不用memcpy!采用赋值运算符重载,因为赋值运算符重载是采用深拷贝方式来进行的。改成以下格式!

// memcpy(temp, start, sizeof(T) * size());
for (size_t i = 0; i < size(); ++i) {
    temp[i] = start[i];
}
1710725296688.webp
© 版权声明
THE END
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容