c++ - 是否需要销毁char*=“string”或char*= new char[6]?

c++ - 是否需要销毁char*=“string”或char*= new char[6]?

我假设char*="string"与char*=new char[6] 。 我相信这些字符串是在堆而不是堆栈上创建的。 那么当我使用它们或被它们自己毁坏时,我是否需要摧毁它们或释放它们的记忆?…


c++ - 查找由智能指针引起的内存泄漏

有人知道一个“技巧”,发现由智能指针引起的内存泄漏吗? 我目前正在使用C++编写的大型项目,大量使用智能指针和引用计数。 很明显,我们有一些由智能指针引起的内存泄漏,这些指针在代码中仍然被引用,所以它们的内存不会被释放。 很难找到带有“不必要的”引用的代码行,导致相应的对象不被释放(尽管它不再使用)。 我在网上找到了一些建议,建议收集引用计数器的增量/减量操作的调用堆栈。 这给了我一个很好的…


C++-将引用传递给std:: shared_ptr或boost:: shared_ptr

如果我有一个需要使用shared_ptr的函数,将它的引用传递给它会不会更高效(所以为了避免复制shared_ptr对象)? 什么是可能的不良副作用? 我设想了两种可能的情况: 1)函数内部的副本由参数组成,如in ClassA::take_copy_of_sp(boost::shared_ptr<foo> &sp){... m_sp_member=sp;…


c++ - 一旦你采用boost的智能指针,是否有任何情况下使用原始指针?

我很好奇,因为我开始采用更多的提升成语,看来是最好的实践,我想知道我的c++在什么时候甚至远远地看起来像c++的昔日,通常在典型的例子和在那些谁没有被引入到“现代C++”?…


c++ - 智能指针+“这个”被认为是有害的?

在使用智能指针(如boost::shared_ptr的C++项目中,使用“ this ”的设计理念是什么? 考虑到: 存储任何智能指针中包含的原始指针供以后使用是很危险的。 你已经放弃了对象删除的控制,并相信智能指针在正确的时间做到这一点。 非静态类成员本质上使用this指针。 这是一个原始指针,不能改变。 如果我将它存储在另一个变量中,或者将它传递给另一个可能存储它的函数,或者将它绑定…


c++ - make shared_ptr不使用delete

在我的代码中,我想boost:: shared_ptr不要调用delete但是调用ptr-> deleteMe()代替。 我还有一些C风格的函数返回一个ptr。 我可以调用lib_freeXYZ(ptr); 而不是试图删除?…


c++ - 从shared_ptr获得正常的ptr?

我有类似shared_ptr<Type> t(makeSomething(), mem_fun(&Type::deleteMe))我现在需要调用需要指向Type的指针的C样式函数。 我如何从shared_ptr获取它?…



c++ - boost shared_ptr<XXX>线程安全吗?

我有一个关于boost::shared_ptr<T> 。 有很多线程。 using namespace boost; class CResource{// xxxxxx}class CResourceBase{public: void SetResource(shared_ptr<CResource> res){m_Res=res;}…


c++ - 引用计数智能指针的引用计数如何工作?

换句话说,实现如何跟踪计数? 是否存在一个类似于映射的对象,所有shared_ptr实例都可以访问它们,其key是指针的地址,value是引用的数量? 如果我要实现一个shared_ptr,这是我想到的第一个想法。 在这些引用计数智能指针的情况下是否存在内存泄漏的可能性? 如果是这样,我该如何避免它们?…


c++ - 我怎么知道谁拥有shared_ptr<>?

我在C++的应用程序中使用boost:: shared_ptr。 内存问题真的很严重,应用程序需要大量的内存。 但是,因为我将每个新对象放入shared_ptr中,所以当应用程序退出时,不会检测到内存泄漏。 必须有一些像std::vector<shared_ptr<>>池的资源。 如何在调试时知道谁拥有shared_ptr? 一行一行地检查代码是很困难的。 太多的代码... 非常感谢…




shared_ptr reset std shared_ptr头文件 get shared_ptr用法 shared_ptr初始化 shared_ptr赋值 unique_ptr boost