常见内存错误及避免
使用未分配成功的内存
在使用内存之前检查指针是否为NULL
引用分配成功但尚未初始化的内存
赋初值,即使是赋零值也不能省略
内存分配成功并且已经初始化,但操作越过了内存的边界
注意下标的使用不能越过边界
忘记释放内存,造成内存泄漏
动态内存的申请与释放必须配对,程序中malloc
与free
的使用次数一定要相同,否则会出现问题
释放了内存却继续使用它
使用free
释放了内存后。将指针设置为NULL
。若没有设置为NULL
,就会产生野指针,它是指向“垃圾”内存的指针。
内存错误的注意点
指针消亡了,并不代表它所指的内存会被自动释放
内存被释放了,并不代表指针会消亡或者成了NULL
指针
野指针
野指针的形成是指针表辆没有初始化,任何指针变量刚被创建时不会自动成为NULL
指针,它的缺省值时随机的,他会乱指一气
指针变量在创建的同时应当被初始化,要么将指针设置为NULL
,要么让它指向合法的内存。
使用free
释放了内存之后,将指针设置为NULL
。若没有设置为NULL
,就会产生野指针,它是指向垃圾内存的指针