常见内存错误及避免

使用未分配成功的内存

在使用内存之前检查指针是否为NULL

引用分配成功但尚未初始化的内存

赋初值,即使是赋零值也不能省略

内存分配成功并且已经初始化,但操作越过了内存的边界

注意下标的使用不能越过边界

忘记释放内存,造成内存泄漏

动态内存的申请与释放必须配对,程序中mallocfree的使用次数一定要相同,否则会出现问题

释放了内存却继续使用它

使用free释放了内存后。将指针设置为NULL。若没有设置为NULL,就会产生野指针,它是指向“垃圾”内存的指针。


内存错误的注意点

指针消亡了,并不代表它所指的内存会被自动释放
内存被释放了,并不代表指针会消亡或者成了NULL指针

野指针

野指针的形成是指针表辆没有初始化,任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值时随机的,他会乱指一气
指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。
使用free释放了内存之后,将指针设置为NULL。若没有设置为NULL,就会产生野指针,它是指向垃圾内存的指针

标签: c, c内存错误

添加新评论