(1) //======================================
Type *p=new Type();
delete p;
p=NULL; //
有个常见的错误是当返回一个基于栈分配的局部变量的地址时,一旦调用的函数返回,分配给这些变量的空间将被回收,此时它们拥有的是"垃圾值"。
int * func ( void ) { int num = 1234; /* ... */ return # }
在调用func之后一段时间,尝试从该指针中读取num的值,可能仍然能够返回正确的值(1234),但是任何接下来的函数调用会覆盖原来的栈为num分配的空间。这时,再从该指针读取num的值就不正确了。如果要使一个指向num的指针都返回正确的num值,则需要将该变量声明为static。
不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。更多 野指针,迷途指针 来自:http://zh.wikipedia.org/wiki/%E8%BF%B7%E9%80%94%E6%8C%87%E9%92%88
(2)//======================================
if(p){ //??忘了。。。
p=new ClassType();
}
if ( pNULL ) *pNULL = 100;//这样程序就不会给空指针所指变量赋值了。( 给空指针所指内存区域——0x00000000赋值时,系统会报错哦~)
(3)//======================================
class ABC
{
} ;
(4)//======================================
-842150451,这个数字通常是 直接输出未初始化的整数时造成的。
(5)//======================================
防止意外,有if 必有else;有case必有default;
(6)//======================================