作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是这门语言的新手,我对内存泄漏有一个基本的怀疑。不使用new
关键字会不会泄露? (即在堆栈中使用我的变量并使用像 std::vector
这样的数据容器)
我应该担心这个问题吗?
如果是这样的话,有人能给我一个没有动态分配内存而造成泄漏的情况的例子吗?
最佳答案
i.e having my variables in the stack and using data containers like
std::vector
不,使用 std::vector
或其他标准容器您不必担心。
can someone give me an example of a situation that creates a leak without dynamically allocating memory?
一个常见的错误是以下形式的循环依赖智能指针:
class Child;
class Parent {
std::vector<std::shared_ptr<Child>> childs;
};
class Child {
std::shared_ptr<Parent> parent;
};
由于共享指针的引用计数器永远不会降为零,因此这些实例永远不会被删除并导致内存泄漏。
可以在此处找到有关导致这种情况的原因以及如何避免这种情况的更多信息
关于c++ - 如果我不使用 new 关键字,我会发生内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54336422/
我是一名优秀的程序员,十分优秀!