21xrx.com
2024-09-20 00:22:25 Friday
登录
文章检索 我的文章 写文章
C++中new出来的对象存在哪里?
2023-06-27 07:24:10 深夜i     --     --
C++ new 对象 存储位置

C++中的new操作符是一个非常重要的运算符,可以用来动态地分配内存空间,创建新的对象并返回该对象的指针。由于new是一个非常常用的运算符,因此了解它的内部工作机理和实际操作过程非常重要。

首先,我们需要明确一点:new操作符返回的是一个指针,它指向新创建的对象所占用的一段内存空间。这个内存空间分配在堆中,称为堆空间(Heap),它的大小与对象本身的大小相关。

当程序通过new操作符动态分配空间新建一个对象时,操作系统会为这个对象分配以整数倍的字节(通常是4或8个字节)的一段内存,这个内存是连续的,并且相对于程序的全局数据区或堆栈数据区是独立的。

这个新分配的内存空间一般使用malloc或new来完成,其中malloc是C语言库函数,而new是C++自己的一个操作符。不管是new还是malloc,在内存分配的时候都需要指定所需空间的大小,并返回一个指针。这个指针指向分配的内存空间的起始位置,程序通过该指针可以访问和操作新分配的内存空间。

需要注意的是,如果程序未进行delete操作来释放new分配的内存,那么这个内存空间会一直存在,直到系统进程结束才会被释放,这就会导致内存泄漏问题。因此,在程序设计中,我们需要注意及时清理动态分配的内存空间,避免内存泄漏问题的出现。

综上所述,C++中通过new操作符创建的对象在堆中分配的一段内存空间中存储。这个内存空间与程序的全局数据区或堆栈数据区是独立的,需要设计人员主动进行内存管理,及时释放资源,避免出现内存泄漏的问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复