c++中NEW运算符的用法

 我来答
仁昌爱娱乐
高粉答主

2020-01-11 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459853

向TA提问 私信TA
展开全部

c++中NEW运算符使用的一般格式为new 类型[初值]。用new分配数组空间时不能指定初值。如果由于内存不足等原因而无法正常分配空间,则new会返回一个空指针NULL,用户可以根据该指针的值判断分配空间是否成功。

1、newint:开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)。

2、newint(100):开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址。

3、newchar[10]:开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址。

5、newint[5][4]:开辟一个存放二维整型数组(大小为5*4)的空间,返回首元素的地址。

6、float*p=newfloat(3.14159):开辟一个存放单精度数的空间,并指定该实数的初值为3.14159,将返回的该空间的地址赋给指针变量p。

扩展资料:

通过NEW运算符生成对象时,缓冲区会提前分配,可以使用堆的空间,也可以使用栈的空间。一旦这个对象使用完毕,就必须显式的调用类的析构函数进行销毁对象。但此时内存空间不会被释放,以便其他的对象的构造。

因此,如果缓冲区在堆中,那么调用delete[] buf;进行内存的释放;如果在栈中,那么在其作用域内有效,跳出作用域,内存自动释放。



『吾不笑』
推荐于2017-09-21
知道答主
回答量:10
采纳率:0%
帮助的人:9.7万
展开全部
new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)   
new int(100);//开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址   
new char[10];//开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址   
new int[5][4];//开辟一个存放二维整型数组(大小为5*4)的空间,返回首元素的地址   
float *p=new float (3.14159);//开辟一个存放单精度数的空间,并指定该实数的初值为//3.14159,将返回的该空间的地址赋给指针变量p   
new运算符使用的一般格式为   new 类型 [初值]   用new分配数组空间时不能指定初值。如果由于内存不足等原因而无法正常分配空间,则new会返回一个空指针NULL,用户可以根据该指针的值判断分配空间是否成功。  
 delete运算符使用的一般格式为   delete [ ] 指针变量   
例如要撤销上面用new开辟的存放单精度数的空间(上面第5个例子),应该用   delete p;   
前面用“new char[10];”开辟的字符数组空间,如果把new返回的指针赋给了指针变量pt,则应该用以下形式的delete运算符撤销该空间:   
delete [] pt;//在指针变量前面加一对方括号,表示是对数组空间的操作   
例 开辟空间以存放一个结构体变量。   
#include <iostream>   
#include <string>   
using namespace std;
  struct Student //声明结构体类型Student
  {
string name;   
int num;   
char sex;
  };
int main( )   
{
Student *p; //定义指向结构体类型Student的数据的指针变量
  p=new Student; //用new运算符开辟一个存放Student型数据的空间
  p->name=″Wang Fun″; //向结构体变量的成员赋值
  p->num=10123;
  p->sex='m';
cout<<p->name<<endl<<p->num<<endl<<p->sex<<endl;//输出各成员的值
  delete p;//撤销该空间
  return 0;   
}   
运行结果为   Wang Fun 10123 m
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式