首页 > 其他分享 >new 和 delete 运算符

new 和 delete 运算符

时间:2023-06-19 13:57:52浏览次数:34  
标签:double 数据类型 运算符 内存 new pvalue delete

 

下面是使用 new 运算符来为任意的数据类型动态分配内存的通用语法:

new data-type;

在这里,data-type 可以是包括数组在内的任意内置的数据类型,也可以是包括类或结构在内的用户自定义的任何数据类型。让我们先来看下内置的数据类型。例如,我们可以定义一个指向 double 类型的指针,然后请求内存,该内存在执行时被分配。我们可以按照下面的语句使用 new 运算符来完成这点:

double* pvalue = NULL; // 初始化为 null 的指针

pvalue = new double; // 为变量请求内存

如果自由存储区已被用完,可能无法成功分配内存。所以建议检查 new 运算符是否返回 NULL 指针,并采取以下适当的操作:

double* pvalue = NULL;

if( !(pvalue = new double ))

{

cout << "Error: out of memory." <<endl;

exit(1);

 

}

malloc() 函数在 C 语言中就出现了,在 C++ 中仍然存在,但建议尽量不要使用 malloc() 函数。new 与 malloc() 函数相比,其主要的优点是,new 不只是分配了内存,它还创建了对象。

在任何时候,当您觉得某个已经动态分配内存的变量不再需要使用时,您可以使用 delete 操作符释放它所占用的内存,如下所示:

delete pvalue; // 释放 pvalue 所指向的内存

 

http://www.msisle.com/

标签:double,数据类型,运算符,内存,new,pvalue,delete
From: https://www.cnblogs.com/5-si6/p/17490941.html

相关文章

  • 四、C#运算符
    1、Convert不兼容的类型转换使用Convert。2、++、--++:分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加1。区别表现在表达式中:后++,先运算后加一;前++,先加一后运算//++intnumber=10;intnumber1=10;int......
  • C++ 重载运算符
    为了叙述的方便,以下内容以赋值运算符为例赋值运算符本质是一个名为operator=的函数,某些运算符必须定义为成员函数赋值运算符定义示例代码classFoo{public:Foo&operator=(constFoo&);};......
  • SELECT和DELETE执行计划的不同选择
    模拟表名,A表的数据量约1000万,B表的数据量约500万,进行连接,其中这几个条件字段,都创建了索引,SQL>SELECT*fromAainnerjoinBbona.ID=b.idwhereb.C_DATE<=trunc(sysdate)-1000;我们知道在CBO优化器模式下,Oralce会基于Cost成本,来选择执行计划。从执行计划看,......
  • DataBinding运算符
    前言1、算术运算符说到运算,四则运算一定是我们首先想到的。加法运算+、减法运算-、惩罚运算*、除法运算/、求余运算%五种运算,我们只以加法运算做一个示范。首先我们准备在activity_main中声明并使用两个int类型的变量:<variablename="num1"type="Integer"/><variable......
  • day 33 反射机制,元类,__new__,__call__,元类下的属性查找
    1,内置方法在满足某种条件下自动触发 2、python是动态,强类型的,解释型语言动态:在程序中定义变量时不需要定义变量的类型,在执行时才知道变量的类型;静态:必须定义好变量的类型。只要是动态语言,就必须有反射机制 解释:一句一句的翻译后执行强类型:3:反射实现反射机制的步骤1、......
  • 基础语法2运算符
    基础语法2运算符Java运算符可以分为以下几种类型:算术运算符:用于执行数学运算,如+、*、/、%(取余)等。关系运算符:用于比较两个值的大小或相等性,如==、!=、>、<、>=、<=等。逻辑运算符:用于判断两个或多个条件的真假,如&&、||、!等。位运算符:用于对整数类型的二进制位进行操作,如&......
  • 前端学习C语言 - 第二篇(常量、运算符、控制和循环)
    常量、运算符、控制和循环前文我们写了第一个c语言程序,了解了基本的数据类型。本篇将继续学习:常量、运算符、控制语句和循环语句。常量#define常量#define是用来定义常量和宏的预处理指令。定义常量的一般形式:#define常量名常量值。就像这样:#defineMAX_NUM100//定义整型......
  • 运算符重载知识点总结
    #运算符重载在数学上,两个复数可以直接进行+、-等运算。但在C++中,直接将+或-用于复数对象是不允许的。•有时会希望,让对象也能通过运算符进行运算。这样代码更简洁,容易理解。•例如:complex_a和complex_b是两个复数对象;求两个复数的和,希望能直接写:complex_a+complex_b在数学上......
  • Hugging News #0616: 有几项非常重要的合作快来围观、最新中文演讲视频回放发布!
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」,本期HuggingNews有哪些有趣的消息,快来看看吧!重磅更新safetensors将成为保存模型的默......
  • Python的self作用,以及__init__,__new__
    本章来探讨一下Python类的self作用,以及__init__,__new__。为什么是探讨,不是学习,因为菜......