【发布时间】:2020-03-04 10:38:42
【问题描述】:
编译器如何为由list类型变量组成的类的对象分配内存,这些变量在程序执行时会随时间扩展?另外,编译器如何确保所需的内存量在需要时可用并防止内存泄漏?
【问题讨论】:
-
编译器不负责进行或管理动态分配。
-
请注意,列表节点并不直接存储在列表对象本身中。列表通常只存储指向第一个列表元素的指针。
-
现在,如果我们想要对对象进行深拷贝,并为此使用“new”为类的新对象分配内存,那么分配的内存是否会有指向列表的指针在新变量中?因为如果我们释放该类的前一个对象,这将产生问题。
-
不清楚你在问什么。如果您进行深层复制,则新对象不会引用旧对象。
标签: c++ memory-management dynamic memory-leaks