当前位置: 首页 > news >正文

网上做物理题赚钱的网站企业市场营销

网上做物理题赚钱的网站,企业市场营销,大型电子商务系统网站建设,阳江二手房个人出售信息文章目录 前言一、new和mallocnew的用法(爽点)自动构造 delete和freedelete的用法(爽点) 提醒 前言 提示:这里可以添加本文要记录的大概内容: 在C中,new 和 delete 是两个非常重要的操作符&am…

文章目录

  • 前言
  • 一、new和malloc
    • new的用法(爽点)
    • 自动构造
  • delete和free
    • delete的用法(爽点)
  • 提醒


前言

提示:这里可以添加本文要记录的大概内容:

在C++中,new 和 delete 是两个非常重要的操作符,它们用于在堆(heap)上动态地分配和释放内存。这是与在栈(stack)上自动分配内存(例如,通过局部变量)或全局/静态分配内存(例如,全局变量或静态变量)的主要区别。使用堆内存可以让你在程序运行时根据需要动态地分配任意大小的内存块,并在不再需要时显式地释放这些内存块。下面我将全面且深刻的讲解new和delete且与malloc和free比较


提示:以下是本篇文章正文内容,下面案例可供参考

一、new和malloc

在c语言中我们创建空间是用malloc而malloc是一个函数而new是一个操作符在用法上也有很大的不同malloc要自己创建空间大小而new会自己创建,malloc创建空间时不会初始化而new会初始化这样的差别有很多我们通过一些简单的列子来做比较

//mallocint *i = (int*)malloc(sizeof(int));//newint* i = new int;

同样是创建一个int指针i单从打字的角度可以看出new的方便,但是这不单单是只有这么一小点差别哦,new的爽点还没开始

new的用法(爽点)

在malloc的使用中我们需要将它单独拿出来但是在new中却不用这么麻烦可以直接赋值

//mallocint *i = (int*)malloc(sizeof(int));*i = 9;//newint *i=new int9);

在new中可以直接在new后面确定空间的类型比如说int再在后面加它的值(9),这一个可能你没有感觉但是如果你有多个需要你赋值的空间呢?
多个空间赋值

//malloc
int *i = (int*)malloc(10 * sizeof(int)); if (i == NULL) {  printf("内存分配失败\n");  return 1; // 返回一个错误码  }  for (int j = 0; j < 10; j++) {  i[j] = j ;  }  //newint* i = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//明显new的用法更爽(new也可以用for循环来赋值)

对于多个值的赋予new可以直接用大括号加值来赋予(单独的值可以直接用小括号来赋予值详细可以看上面的列子),并且不知道你是否注意到了new没有判断是否空间赋值成功,这是因为new会自动判断并报错空间不足你可以用这段代码来看看它的自动报错注意使用x86环境(不是博主不给贴图只是它不给我报错啊,空间一直足够我都用到 i21了第一次对堆的大小有了直观感受,要知道这一个 i 就是41,943,040 字节啊,不要说是已经出错了我将它的地址给打印出来的)

自动判断空间大小并报错

 int* i = new int[1024*1024*10] ;int* i1 = new int[1024 * 1024 * 10];int* i2 = new int[1024 * 1024 * 10];int* i3 = new int[1024 * 1024 * 10];int* i4= new int[1024 * 1024 * 10];int* i5 = new int[1024 * 1024 * 10];int* i6= new int[1024 * 1024 * 10];

(在执行这段代码时如果你有幸看到了报错信息还请发一下图片在评论区)比如这段代码

class text
{public:text(){cout << "text" << endl;}~text(){cout << "~text" << endl;}
private:
};
int main()
{text *a=new text  ;delete a;}

它会创建一个text类
在这里插入图片描述

自动构造

在使用类的时候我们无法用malloc来创建一个类但是new却可以

delete和free

在c语言中我们释放空间时用的是free但是用free时总是要把它定义成空指针非常麻烦所以delete来了

delete的用法(爽点)

delete是不需要将你开辟的空间定义为空的它会自动析构比如

#include<iostream>int* i = new int(3);cout << i << endl;cout << *i << endl;delete (i);cout << i << endl;cout << *i << endl;

它的运行结果是这样的在这里插入图片描述
可以看出它已经将值自动消除且将它的地址归于系统了,这对于资源管理和防止内存泄漏至关重要。 但是free就需要你苦兮兮的将值归0且要将它定为NULL

提醒

malloc和free是一对而new和delete是一对不要将它们拆散也不要将它们错误匹配

http://www.yayakq.cn/news/834991/

相关文章:

  • 网站建设山西图片类网站开发需求
  • 网站建设所面临的问题dw个人主页制作模板
  • 做校园后勤管理网站得重点难点php网站开发实例报告
  • 建南沙做网站公司网站开发现在是热门专业吗
  • 做网站活动网络营销中的seo是指
  • 网站建设上的新闻建网站没有公司地址怎么办
  • 网站 可信验证网页图片下载插件
  • seo网站查询wordpress响应式主题
  • 永嘉县建设局网站2345网址导航怎么删除干净?
  • 网站备案 新增接入小程序制作联系方式怎么添加
  • 中关村在线官方网站华为网络工程师培训费用
  • 性能网站建设wordpress自己添加的菜单怎么删除
  • 企业网站设计的基本内容包括哪些个人建站的app哪里有卖
  • 制作服务网站企业网站建设报价
  • 上海装修公司做网站网站名称个人
  • 加盟商网站建设手机网站列表 教程
  • 深圳有哪些网站建设wordpress 插件设置
  • 番禺建设网站报价网站建设 优化
  • 苏州网站建设网络域名比价网
  • 做网站对比报告企业宣传网站建设
  • php手机wap网站源码做网站一个程序员够吗
  • 德保网站建设php开发网站建设书籍
  • 有什么网站做投标设计网页设计心得体会大二
  • 邀请注册推广赚钱的app长尾关键词在网站优化中起的作用有哪些
  • 如何使用域名访问网站营销推广活动策划书模板
  • 百度显示网站名好的网站建设企业
  • 案例建网站免费广告设计软件
  • 品牌网站建设9小蝌蚪9aseo广告平台
  • 建设厅注册中心网站考试报名费缴费新东方小吃培训价格表
  • 昌吉 建设局 网站免费申请