在同一个vtkSmartPointer上调用new两次是不安全的吗?
Is calling new twice on the same vtkSmartPointer unsafe?
根据这个问题,你不能在没有删除的情况下在同一个普通指针上调用new两次,但是如果你正在使用vtkSmartPointer
s呢?我有几个场合,在这样一个智能指针上调用Delete()会产生分割错误,即使在它之后声明了New()。如何完全销毁对象并创建一个新对象?我需要这个来破坏vtkRenderWindow。
vtksmartpointer应该是安全的,因为它们的目的是在它们被销毁时自己清理分配的内存。但是,如果智能指针的任何其他副本仍然存在,当您覆盖"原始"智能指针时,窗口将不会立即被销毁。
vtkSmartPointer<vtkRenderWindow> rw;
rw = vtkRenderWindow<vtkRenderWindow>::New();
rw = vtkRenderWindow<vtkRenderWindow>::New(); // destructor of previous instance is invoked, which deletes the pointer
相关文章:
- 蛇在C++不会连续转两次
- 不能通过两次带大括号的指针
- 矢量减小元素的大小后,如何不会破坏元素两次
- 两次相同的 for 循环:一个编译,另一个不编译
- 阵列不能两次将相同的名称保存,当要添加新字符串时,程序应检查以查看该名称是否已经存在
- C++ 为什么我不能使用循环:while(fin>>x) 两次
- “boost::p rogram_options”不能在“variables_map”上使用两次“store”
- 如何通过调用 gluUnproject 两次(不使用 gluUnProject)从场景坐标中获取深度值
- 编译器是否可以从全局变量中读取两次,而不是存储一个局部变量
- 在 for 循环(链表)中删除两次后,变量不可用
- 我找不到导致我的数组在运行两次案例并退出后损坏的错误
- 多次调用DOMImplementationRegistry::getDOMImplementation()是不安全的还是
- cmake 不会设置MPI_C_LIBRARIES,除非它运行两次
- 投掷一个物体两次,而不是一次
- 如果我对async_read进行两次调用,那么只有在处理完第一次调用之后,才会处理第二次调用,这是否安全
- 我的C++ Unity 插件在编辑器中运行一次,但不能运行两次
- C++函数不能调用两次
- 在循环重复两次之前,break 语句不起作用
- 在同一个vtkSmartPointer上调用new两次是不安全的吗?
- 为什么使用while(!input.eof())循环两次不工作