对象的析构函数是否释放用于创建对象的指针所指向的内存?
Does the destructor of an object free the memory pointed by the pointer used to create object?
Object obj = *obj_ptr;
是否obj的析构函数,例如,如果obj超出作用域,释放由obj_ptr分配的内存?
一般来说:不,因为obj
是*obj_ptr
的副本,而不是引用。
但这取决于赋值的作用
技术上它可以,但这将是非常奇怪的。在几乎所有情况下:没有。
对象所在的内存由new
分配,由delete
释放。对象不知道它是如何分配的。它可以在堆栈上,可以通过new
,在数组中,位置new,一个全局变量。
相关文章:
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- CUDA:统一内存和指针地址的更改
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 当指向对象的指针作为参数传递给 std::thread 时,内存可见性
- 将统一的内存指针传递给内核会减慢程序的速度
- malloc - 运行时内存指针类型分配
- 共享内存指针分段错误
- 使用动态分配的内存(指针)
- 与对象一起返回时清除了内存指针
- 在UWP C++项目中,程序集分配的内存指针自动更改为0xffffffff
- 使用注入的 dll 使用内存指针编辑值
- 提升共享内存 - 指针的返回向量
- 监视从应用程序写入指定的内存指针从 DLL 接收
- 非分页内存指针
- Qt读取内存指针值
- 简单的程序帮助-发送动态内存指针到函数