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

之前一直是引发异常,我debug了一下是到自定义类型析构函数处引发的异常。应该就是释放了已经释放的内存导致的问题。
可是一直没有意识到是memcpy的锅,搜了搜才知道,原来就是这小子的毛病。
解决方法是什么?直接不用memcpy!采用赋值运算符重载,因为赋值运算符重载是采用深拷贝方式来进行的。改成以下格式!
// memcpy(temp, start, sizeof(T) * size());
for (size_t i = 0; i < size(); ++i) {
temp[i] = start[i];
}

© 版权声明
若无特殊说明,文章版权归作者所有,请勿转载至任何平台。
THE END
暂无评论内容