情人节new一个对象给你

简介: 情人节new一个对象给你

今天情人节,有没对象的吗?假设你不知道new怎么用,每个人都有两种身份,一种没对象的人,这个时候new一个对象给你,一种是有对象的人,这个delete对象。等你学完这个new和delete知识点,无论何时何地,你都能new或者delete一个对象。


一.关于new与delete


new和malloc一样,就是告诉计算机开辟一段新的空间,但是和一般的声明不同的是,new开辟的空间在堆上,而一般声明的变量存放在栈上。new开辟空间和普通变量开辟空间不同,比如为普通变量开辟的内存(在栈区),在函数体里面使用完之后就会立即被操作系统释放,而new开辟的内存(在堆区)在函数结束的时候必须由程序员手动释放,如果这块内存不用了,用delete运算符释放它


二.使用堆区的内存有四个步骤:


1)声明一个指针;


2)用new运算符向系统申请一块内存,让指针指向这块内存;


3)通过对指针解引用的方法,像使用变量一样使用这块内存;


4)如果这块内存不用了,用delete运算符释放它。


注意: 如果申请成功,返回一个地址;如果申请失败,返回一个空地址;


释放内存的语法:delete 地址;


释放内存不会失败(还钱不会失败)。


三.申请内存的语法:


  • new 数据类型
  • new 数据类型(初始值)
  • new 数据类型[常量表达式]


四.示例:

  int  * p1=new int;//new一个整形对象
  int* p2 = new int(2); // *p2初始化值是2,这样直接在定义后面初始化是可以的
    cout << "*p=" << *p << endl;
    *p = 8;//解引用修改p所直指向的值也是可以的
    cout << "*p=" << *p << endl;
    delete p;
 //如果不想使用指针,可以定义一个变量,在new之前用“*”表示new出来的内容
  int q = *new int;
  q = 1;
  cout << q << endl;
  int  *p3=new int[1000] //申请1000个单位内存空间
  int* example2()
{
  //当new一个数组时,同样用一个指针接住数组的首地址
  int *q = new int[3];
  for(int i=0; i<3; i++)
    q[i] = i;
  return q;
}
struct student
{
  string name;
  int score;
};
student* stu()
{
  //这里是用一个结构体指针接住结构体数组的首地址
  //对于结构体指针,个人认为目前这种赋值方法比较方便
  student *stud = new student[3]{{"张三", 100}, {"李四", 100}, {"王五", 100}};
  return stud;
}


注意:


  • 动态分配出来的内存没有变量名,只能通过指向它的指针来操作内存中的数据。
  • 如果动态分配的内存不用了,必须用delete释放它,否则有可能用尽系统的内存。
  • 动态分配的内存生命周期与程序相同,程序退出时,如果没有释放,系统将自动回收。
  • 就算指针的作用域已失效,所指向的内存也不会释放。
  • 用指针跟踪已分配的内存时,不能跟丢。
相关文章
|
8月前
|
存储 XML JavaScript
圣诞节到了,用代码给对象写一颗圣诞树吧
JS是JavaScript的缩写,它是一种广泛使用的编程语言。JavaScript通常用于在web页面中添加动态内容、交互式特效和用户体验增强等功能。它是一种脚本语言,可以在浏览器中直接运行,也可以与服务器端进行交互。JavaScript可以用于创建复杂的应用程序,包括网页、手机应用、桌面应用以及游戏等。它具有广泛的应用领域,并且拥有大量的开发资源和社区支持。
241 4
|
8月前
|
前端开发 小程序 编译器
有意思,圣诞节自己做一个装饰圣诞帽头像的APP!
有意思,圣诞节自己做一个装饰圣诞帽头像的APP!
|
设计模式 Java
【3D机甲】捏造型功能
【3D机甲】捏造型功能
|
人工智能 文字识别 算法
穿颜色成对的袜子,追最新的剧:这群coder正帮视障者移走身上的大山
穿颜色成对的袜子,追最新的剧:这群coder正帮视障者移走身上的大山
120 0
|
计算机视觉
【七夕限定】5分钟搞定送媳妇儿的节日气球🎈
前言 大家好,我是HoMeTown,下周不出意外的话那么下周就是七夕节了,周六日也就是周末陪媳妇儿看电影外太空的莫扎特,有一说一,这个电影真的不推荐14岁以上的人观看,小孩看还行,给我的感觉就是低配版长江七号。散场之后,碰巧路边有一个卖气球的小姑娘,去买一个,单价30人民币,我直呼我直呼,如果兜里没钱的话,可能兜里就没钱了吧。但是这个怎么可能难得住一个即将秃头的我?
111 0
|
人工智能 数据可视化 Windows
R可视乎|用R给心仪的对象表白吧
早上听完讲座才想起来,今天520了。那这样吧,小编给做了个小小的惊喜给读者们,年轻的盆友可以用这“小玩意”给自己心仪的对象表白了。
377 0
R可视乎|用R给心仪的对象表白吧
|
程序员
七夕?new一个对象
那些初见印象 那些浪漫的开始 那些铭记于心的大小事 那些经历的曲折 那些经历的幸福与快乐 那些珍贵的瞬间 那些对未来的期许/计划
84 0
|
传感器 JavaScript 前端开发
震惊,偶像大神亲自上场,Cesium 50个实例集合,讲解、分析(内附源码)
生活是如此的艰难,还是学习来的简单,哈哈哈。亲爱的朋友们,还在为学习Cesium 苦恼吗,还在苦苦找不到Demo吗,来这里,来这里,资深大牛为你探路,助你快速学习Cesium 。
1503 0
震惊,偶像大神亲自上场,Cesium 50个实例集合,讲解、分析(内附源码)