C++ 学习 new

原创 2015年11月18日 21:11:47

new 还有一种形式是布局new ,

 int buffer2 = new int [10];
 int * p4=new (buffer2) int [20];`

则 以p4为首地址的数组,会使buffer2的为首地址的内存块
placement new操作符使用的是静态内存,而不是动态分配的内存。这就意味着,不能用delete操作符来对它进行内存释放

当两个new出来的内存是根据同一个类型的首地址分配的,那么他们指向的是同一块存储单元。不会出现一个被挤走的情况

#include <iostream>
#include <new>

using namespace std;

int main()
{
    int * a = new int[10];
    int * b = new (a) int [20];
    int * c = new (a) int [20];

    b[0] = 1;
    cout<<b[0]<<endl;
    c[0] = 22;
    cout<<b[0]<<endl;
}

结果是 1 22;

关于C++中常用的对DEBUG_NEW、THIS_FILE重定义的说明

//============================================================================= #ifdef _DEBUG // ...
  • xuhuan_wh
  • xuhuan_wh
  • 2017年11月08日 09:38
  • 397

C++关键字new学习

很多新手对C++关键字new可能不是很了解吧,今天我一起来学习一下。      “new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解...
  • scgyyu
  • scgyyu
  • 2008年03月18日 09:13
  • 415

c++学习 ( new, delete)

c++是面向对象的编程语言, 其强调的是在运行阶段进行决策,而不是在编译阶段, 所以引入 new ,delete 等 来进行动态内存分配 new 返回的是一个地址, 如 int *p = n...
  • u013570474
  • u013570474
  • 2015年11月17日 18:34
  • 161

tricky c++ new(this)

Environment: Ubuntu 11.10 amd64. g++. You cannot call constructor from anthor constructor in C++. ...
  • lgh1992314
  • lgh1992314
  • 2013年09月26日 15:12
  • 2040

深入理解C++的new

“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。 new的过程 当我们使用关键字new在堆...
  • u011939264
  • u011939264
  • 2016年10月19日 12:48
  • 828

C++ new的三种用法详细解析

一. 简介 new有三种使用方式:plain new,nothrow new和placement new。 (1)plain new顾名思义就是普通的new,就是我们惯常使用的new。在C++...
  • wangkai_123456
  • wangkai_123456
  • 2017年07月13日 19:35
  • 947

c++中的#include<new>

在new的头文件中只包含6个重载的new和delete
  • shenren911
  • shenren911
  • 2014年04月24日 20:58
  • 787

C++ new关键字深入理解

“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。 new的过程 当我们使用关键字new在堆上动...
  • bbs375
  • bbs375
  • 2016年11月17日 16:28
  • 1509

c++中的new是什么东西?

“new”是C++的一个关键字,通常用来创建一个对象,但它与一般创建对象的方法不同,它会返回这个对象的指针。当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构...
  • wenhao_ir
  • wenhao_ir
  • 2016年06月03日 10:56
  • 579

C++ 中new char[]()和C++ 中new char[]的区别

测试环境: vs210 windows 7 在C++ 中new char[]() 编译器默认将其初始化为0,new char[]则不会初始化。 #include using namespace s...
  • huangshanchun
  • huangshanchun
  • 2015年11月24日 10:22
  • 5087
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 学习 new
举报原因:
原因补充:

(最多只允许输入30个字)