常见内存错误及其对策
2009-09-02 08:17
309 查看
1. 内存分配未成功,却使用了它。
在使用内存之前检查指针是否为NULL。
如果指针p是函数的参数,那么在函数的入口用assert(p != NULL)来检查。
如果用malloc或new来申请内存,应该用if(p == NULL)来检查。
2. 内存分配虽然成功,但是尚未初始化就引用它。
不要忘记为数组和指针赋初值。
3. 内存分配成功并且已经初始化,但操作越过了内存的边界。
避免数组或指针的下标越界。
4. 忘记释放内存,造成内存的泄漏。
动态申请和释放内存要成对出现。
5. 释放了内存,却继续使用它。
在释放了内存后,立即将指针置为NULL,避免产生“野指针”。
在使用内存之前检查指针是否为NULL。
如果指针p是函数的参数,那么在函数的入口用assert(p != NULL)来检查。
如果用malloc或new来申请内存,应该用if(p == NULL)来检查。
2. 内存分配虽然成功,但是尚未初始化就引用它。
不要忘记为数组和指针赋初值。
3. 内存分配成功并且已经初始化,但操作越过了内存的边界。
避免数组或指针的下标越界。
4. 忘记释放内存,造成内存的泄漏。
动态申请和释放内存要成对出现。
5. 释放了内存,却继续使用它。
在释放了内存后,立即将指针置为NULL,避免产生“野指针”。
相关文章推荐