C++ 使用delete释放之后,为什么指针地址不

 我来答
CodeBlove
2017-12-11 · TA获得超过3364个赞
知道小有建树答主
回答量:936
采纳率:79%
帮助的人:243万
展开全部

我觉得是两个原因,一个原因是为了开放性,C++是面向底层特别是硬件接口的语言,底层操作过于封装和自动处理会失去指针的灵活性,我觉得这个原因是最主要的。由于你目前还没有遇到释放内存后需要保留原地址值的需求,因此觉得delete应该自动清除地址(设置为null)。C++以灵活性著称,有程序员的语言的名号,意味着一切都靠程序自己去维护,灵活性的代价就是麻烦。

第二我想C++开发比较早,属于不完全面向对象的语言,封装性和用户友好性差。

所以既然学习C++这个就得习惯,但是C++给予你自己构建属于自己的操作系统/函数库,甚至可以定义自己的语法。事实上你完全可以定义自己的宏命令来完成你的需求。

#define PAUSE system("pause")//定义暂停命令
//定义释放指针宏
#define DEL(ptr )\
{\
 delete ptr;\
 ptr=NULL;\
}

main()
{
 int * p=new int[100];
 DEL( p);
 PAUSE;
}
冯凯在哪里
2017-12-08 · TA获得超过203个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:47.1万
展开全部
???????????????????????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式