没有合适的资源?快使用搜索试试~ 我知道了~
11_new&delete与malloc&free 之间的关系与区别1
需积分: 0 0 下载量 180 浏览量
2022-08-03
12:05:35
上传
评论
收藏 380KB PDF 举报
温馨提示
试读
1页
11_new&delete与malloc&free 之间的关系与区别1
资源详情
资源评论
资源推荐
问
题
请说说
new/delete
与
malloc/free
的
区
别
?
区
别
● new
和
delete
是
C++
的
关
键
字
,
是
⼀
种
操
作
符
,
可
以
被
重
载
● malloc
和
free
是
C
语
⾔
的
库
函
数
,
并
且不
能
重
载
● malloc
使
⽤
时
需
要
⾃
⼰
显
⽰
地
计
算
内
存
⼤
⼩
,
⽽
new
使
⽤
时
由
编
译
器
⾃
动
计
算
● malloc
分
配
成
功
后
返
回
的
是
void*
指
针
,
需
要
强
制
类
型
转
换
成
需
要
的
类
型
;
⽽
new
直
接
就
返
回
了
对
应
类
型
的
指
针
● new
和
delete
使
⽤
时
会
分别
调
⽤
构
造
函
数
和
析构
函
数
,
⽽
malloc
和
free
只
能
申
请
和
释
放
内
存
空
间
,
不
会
调
⽤
构
造
函
数
和
析构
函
数
代
码
⽰
例
注
意
:
delete
和
free
被
调
⽤
后
,
内
存
不
会
⽴
即
回
收
,
指
针
也
不
会
指
向
空
,
delete
或
free
仅仅
是
告
诉
操
作
系
统
,
这
⼀
块
内
存
被
释
放
了
,
可
以
⽤
作
其
他
⽤
途
。
但
是
由
于
没
有
重
新
对
这
块
内
存
进
⾏
写
操
作
,
所
以
内
存
中
的
变
量
数
值
并
没
有
发
⽣
变
化
,
这
时
候
就
会
出
现
野
指
针
的
情
况
。
因
此
,
释
放
完
内
存
后
,
应
该
把指
针
指
向
NULL
。
参
考
资
料
new
和
malloc free
和
delete
的
区
别
new/delete
与
malloc/free
的
区
别
与
联
系
详
解
!
int *q = (int *)malloc(sizeof(int) * 2); //
显
⽰
计
算
内
存
⼤
⼩
int *p = new int[2]; //
编
译
器
会
⾃
动
计
算
1
2
int main() {
int *q = (int *)malloc(sizeof(int) * 2);
int *p = new int[2];
cout << "p = " << p << " q = " << q << endl;
free(p); //
指
针
还
没
指
向
空
delete q; //
同
上
cout << "p = " << p << " q = " << q << endl;
return 0;
}
//
上
⾯
程
序
运
⾏
的
结
果
,
可
⻅
第
⼆
次
打
印
的
时
候
p
和
q
指
针
还
没
指
向
空
//
这
⾥
不
知
为
何
编
译
器
第
⼆
次
打
印
的
q
和
第
⼀
次
不⼀
样
// p = 000000000039B9B0 q = 000000000039B960
// p = 000000000039B9B0 q = 0000000000008123
1
2
3
4
5
6
7
8
9
10
11
12
13
天使的梦魇
- 粉丝: 29
- 资源: 321
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0