![]() |
1
2
可能错误在于
那会的 未定义的行为 但是 也许 偶然工作。当您从第一个函数返回时,堆栈内存最终会被覆盖,数据也会丢失。
更新:
感谢@chris在下面评论中的见解,最有可能的原因是
类似于以下内容:
现在,如果使用编译器生成的默认复制构造函数(或复制运算符),会发生什么?
二者都
这就是为什么我们有 三规则 .其中规定:
现在您必须决定是否要共享
例如,深度复制:
使用共享指针:
|
![]() |
2
0
也许与你的问题无关,但这:
与此相同:
正如@rodrigo所提到的,您的复制问题是您没有使用复制构造函数进行深度复制。 |
![]() |
kaytu · push_back()后向量大小发生变化 2 年前 |
![]() |
Megasa3 · 使用随机值初始化二维向量 7 年前 |
![]() |
enanone · 求反std::矢量的最快方法 7 年前 |
![]() |
Victor O. · 如何将向量列表存储为全局变量? 7 年前 |
![]() |
PaperMoon · 具有结构mmapped向量的结构 7 年前 |