在结构实例的向量上丢失指针,在结构中带有指针
loosing pointers on vector of struct instances, with pointers in the struct
不确定标题是否正确,但这里是:
例如,如果我有以下结构:
struct strA{
int x;
strA(int x);
}
strA::strA(int x){
this->x = x;
}
另一个使用指向前一个的指针的结构:
#include strA
struct strB{
int y;
strA *var_strA;
strB(int y);
~strB(){
delete var_strA;
}
};
strB::strB(int y){
this->y = y;
var_strA = new strA(123);
}
然后,如果我从主要应用程序执行strB项的向量:
std::vector<strB> vectB;
main(){
strB *itemB = new strB(456);
vectB.push_back(*itemB);
delete itemB;
//more code
}
如果我尝试访问矢量中项目的var_strA,则为空。而且,通过删除矢量上的项目时,我会收到错误,因为析构函数尝试再次删除var_strA。
从爪哇来...我真的迷失在该死的指针上。
提前致谢
您需要一个复制构造函数和该指针保持类型的复制赋值运算符,即遵循三规则。这里有一个关于SO的好资源:什么是三法则?
相关文章:
- 如何在 C# 中映射双 C 结构指针?
- 指针或结构的矢量
- MSVC将仅移动结构参数解释为指针
- 如何访问指针结构的成员变量?
- 如何将变量从变量传递到指针结构对象
- 如何在函数中检索指针结构
- C :变量的点地址至指针结构成员的地址
- C++指针结构不会被删除
- 初始化指针结构 - 内存中的外观
- C++指针结构和多线程
- c++中指针结构的运算符重载
- 为什么我不能转发声明指针结构?
- C# 如何定义新的指针结构
- 如何处理大型指针结构
- 我怎么能写一个函数的定义在模板类中声明返回指针结构对象
- 我如何编程指针结构或类变量在c++
- 具有指针结构的类所需的析构函数
- 为什么在非指针结构上进行类型转换会出现语法错误
- 语法:做binary_search (STL)排序向量的指针结构
- /a.检测到Glibc.out: munmap_chunk():无效指针- c++结构体的动态数组