| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1876 人关注过本帖
标题:我不太理解new 和 delete
只看楼主 加入收藏
行空天马
Rank: 1
等 级:新手上路
威 望:1
帖 子:523
专家分:0
注 册:2006-5-19
收藏
 问题点数:0 回复次数:12 
我不太理解new 和 delete

我不太理解new 和 delete,这两个东西做了些什么?是怎么做的?

能不能举个例子说明一下?先谢过。

搜索更多相关主题的帖子: delete new 例子 
2006-05-31 09:18
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
收藏
得分:0 
new是申请存储空间,delete是释放所申请的空间
如:int *p;
p=new int;
delete p;

不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2006-05-31 09:31
行空天马
Rank: 1
等 级:新手上路
威 望:1
帖 子:523
专家分:0
注 册:2006-5-19
收藏
得分:0 
以下是引用guang在2006-5-31 9:31:00的发言:
new是申请存储空间,delete是释放所申请的空间
如:int *p;
p=new int;
delete p;

谢谢楼上回复。

int *p //定义了一个指向int型的指针

p=new int;//申请了一块存储空间,用来存int变量,并把它的地址赋给P。这块空间是四个字节(或两个字节)吗?使用方法和int abc;中变量abc的一样吗?

delete p;//删除了指针P所指向的存储空间

哪位大侠帮忙回答下上面两个问题?先谢过。


好好学习,天天向上。
2006-05-31 11:21
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

p=new int;//申请了一块存储空间,用来存int变量,并把它的地址赋给P。这块空间是四个字节(或两个字节)吗?使用方法和int abc;中变量abc的一样吗?
:::不完全一样,书上会说的很明白,因为你要遇到的时候才会理解
delete p;//删除了指针P所指向的存储空间
:::对!


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-31 11:39
行空天马
Rank: 1
等 级:新手上路
威 望:1
帖 子:523
专家分:0
注 册:2006-5-19
收藏
得分:0 
int *p;
p=new int;
delete p;

用这种方法和用下面方法的效果是一样的吗?

int *p,abc;
p=&abc;

用new、delete有哪些好处呢?

好好学习,天天向上。
2006-05-31 13:26
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
收藏
得分:0 
主要区别是new 申请的变量有静态存储属性
通常 不要使用new关键字
因为可能导致内存泄露问题

2006-05-31 13:36
行空天马
Rank: 1
等 级:新手上路
威 望:1
帖 子:523
专家分:0
注 册:2006-5-19
收藏
得分:0 
明白了,感谢所有回帖的弟兄!!!

好好学习,天天向上。
2006-05-31 14:05
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用ooooo在2006-5-31 13:36:00的发言:
主要区别是new 申请的变量有静态存储属性
通常 不要使用new关键字
因为可能导致内存泄露问题

没有这种说法


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-31 14:20
行空天马
Rank: 1
等 级:新手上路
威 望:1
帖 子:523
专家分:0
注 册:2006-5-19
收藏
得分:0 
谁对?

晕ing.............

int *p;
p=new int;
delete p;

用这种方法和用下面方法的效果是一样的吗?

int *p,abc;
p=&abc;

用new、delete有哪些好处呢?

好好学习,天天向上。
2006-05-31 14:25
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

效果不一样,上面一种p所指向的内存在堆中,下面p指向的对象是在栈中
上面一种p指向的内存除非你调用delete p或者程序结束,否则内存对象一直存在
下面那种如果是在函数中定义的话,那么在函数执行完之后,p指向的内存的数据就是未知数据
用哪种方法关键看p的生命周期


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-31 14:38
快速回复:我不太理解new 和 delete
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034881 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved