C/C++中野指针产生的三种情况
1、指针变量未初始化:
任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气,此时若未初始化,则产生野指针。
2、指针释放后未置空:
有时指针在free或delete后未赋值 NULL,便会使人以为是合法的,此时指针指向一块未定义、未分配的内存。其实free和delete只是把指针所指的内存给释放掉,但并没有把指针本身干掉。指针指向的就是“垃圾”内存。所以释放后的指针应立即将指针置为NULL,防止产生“野指针”。
3、指针操作超越变量作用域:
不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。