鱼C论坛

 找回密码
 立即注册

憔悴心只为你

https://fishc.com.cn/?107996

操作符n e w

已有 829 次阅读2012-9-26 23:39

C + +操作符n e w可用来进行动态存储分配,该操作符返回一个指向所分配空间的指针。例 
如,为了给一个整数动态分配存储空间,可以使用下面的语句来说明一个整型指针变量: 

    int *y ; 

当程序需要使用该整数时,可以使用如下语法来为它分配存储空间: 

    y = new int; 

操作符n e w分配了一块能存储一个整数的空间,并将指向该空间的指针返回给 y ,y是对整数指 

针的引用,而* y则是对整数本身的引用。为了在刚分配的空间中存储一个整数值,比如 1 0,可 
以使用如下语法: 

    *y = 10; 

我们可以把上述三步(说明y, 分配存储空间,为*y 赋值)进行适当的合并,如下例所示: 

    int *y = new int; 

    *y = 10; 

或 

    int *y = new int (10); 

或 

    int *y; 

    y = new int (10);

数据的大小在编译的时候可能是未知的,事实上,它们可能随着函数调用的变化而变化。因此对于这些数组必须进行动态存储分配。
为了在运行时创建一个一维浮点数组x,首先必须把x说明成一个指向f l o a t的指针,然后为 
数组分配足够的空间。例如,一个大小为n  的一维浮点数组可以按如下方式来创建: 

    float *x = new float [n]; 
操作符n e w分配n  个浮点数所需要的空间,并返回指向第一个浮点数的指针。可以使用如下语 
法来访问每个数组元素:x[0], x[1], ..., x[n-1] 。
动态分配的存储空间不再需要时应该被释放,所释放的空间可重新用来动态创建新的结构。 
可以使用C + +操作符d e l e t e来释放由操作符n e w所分配的空间。下面的语句可以释放分配给* y的 
空间以及一维数组x : 

    delete y; 

    delete [ ] x;

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 02:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部