C++ 使用delete释放之后,为什么指针地址不
2个回答
展开全部
我觉得是两个原因,一个原因是为了开放性,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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询