C++里,new是干什么用的,具体的用法是什么?

 我来答
tbyang2011
2013-05-26 · TA获得超过681个赞
知道小有建树答主
回答量:778
采纳率:50%
帮助的人:356万
展开全部
申请内存。例如
char*psz=new char[128];
sprintf(psz,"%f", 1200/7.);
MessageBox(0,psz,0,0);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦中睡客
2013-05-26 · TA获得超过2583个赞
知道小有建树答主
回答量:935
采纳率:0%
帮助的人:297万
展开全部
开辟内存空间存贮变量,比如int *p=new int
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laiyu568395
推荐于2017-09-26 · TA获得超过148个赞
知道答主
回答量:57
采纳率:0%
帮助的人:34.8万
展开全部
new 是申请动态存储空间
⑴new可用来生成动态无名变量,
如 int *p=new int;
int *p=new int [10]; //动态数组的大小可以是变量或常量;而一般直接声明数组时,数组大小必须是常量
又如:
int *p1;
double *p2;
p1=new int(12);
p2=new double [100];
l 分别表示动态分配了用于存放整型数据的内存空间,将初值12写入该内存空间,并将首地址值返回指针p1;
l 动态分配了具有100个双精度实型数组元素的数组,同时将各存储区的首地址指针返回给指针变量p2;
对于生成二维及更高维的数组,应使用多维指针。
以二维指针为例
int **p=new int* [row]; //row是二维数组的行,p是指向一个指针数组的指针
for(int i=0; i<row; i++)
p[i]=new int [col]; //col是二维数组的列,p是指向一个int数组的指针
删除这个二维数组
for(int i = 0; i < row;i++)
delete []p[i]; //先删除二维数组的列
delete []p;
⑵使用完动态无名变量后应该及时释放,要用到 delete 运算符
delete p; //释放单个变量
delete [ ] p;//释放数组变量(不论数组是几维)
相比于一般的变量声明,使用new和delete 运算符可方便的使用变量。
追问
为什么使用完动态无名变量后应该及时释放?
追答
动态空间有限啊  用完不能占用着啊  而程序结束不会自动释放  所以你要释放啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式