c++ - 这个内存分配分配在哪里?

标签 c++ memory-management

这是一行代码:

A a = static_cast<A>(*(new A)); // ?

它至少在 64 位 clang 上编译得很好。

但是实际分配的内存在哪里,变量a会发生什么?

最佳答案

除了不需要静态转换之外,用 new A 分配的内存只会泄漏。您已失去对该指针的访问权限,并且永远无法再正确地删除它。

But where is the memory actually allocated and what happens to variable a?

变量 a 像往常一样一旦离开作用域就被销毁。

关于c++ - 这个内存分配分配在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39195666/

相关文章:

c++ - 使用 Firebreath 和 Curl 加载插件

c++ - std::list 的新位置

c++ - 主构造函数中子类的初始化 - 主构造函数体与子类构造函数体

c++ - 信号量与条件变量——抽象层次

c++ - std::declval<void>() 是一个有效的表达式吗?

c++ - std::atomic <>后递增何时发生?

检查 malloc 之前和 free C 之后的内存状态

objective-c - 创建 CGContextRef 时如何正确清理内存?

memory - Tomcat6不断崩溃

c# - 我尝试跟踪内存泄漏,它是否符合我的要求?