c++中delete前,判断指针是否为0,有必要吗?
有必要判断pi = 0吗?
if ( pi != 0 ) delete pi;
解答:
c++中,如果指针等于0的话,c++不会调用delete的。(因为c++中隐式的进行了判等)
如果显示的判等,那么实际上这个测试会被执行2次。
静态与动态内存分配的两个主要区别:
1. 静态对象是有名字的变量,直接对其进行操作;动态对象是没有名字的变量,通过指针间接地对它们进行操作。
int *pia = new int (1024) 分配了一个没有名字int类型的对象,对象初始值是1024。然后,表达式返回对象在内存中的地址。
2. 静态对象的分配和释放由编译器自动处理。动态对象的分配和释放必须由程序员自己显式管理。
|
posted on 2006-11-09 16:53
乔栋 阅读(1938)
评论(0) 编辑 收藏 引用 所属分类:
C++的健身房