开发过程中遇到的一些死机情况,及对应的一些想法,留作记录方便以后查阅,希望能对大家有些用处。
如果有不妥的地方,也希望大家能帮忙给予指点。
1· 空指针
2· 野指针
3· 内存使用越界
3.1 应用层使用申请的内存(数组)越界。
3.2 系统层引起的死机。
创建进程时会申请固定大小的栈空间。
如函数内部使用的数组空间过大,函数调用的层次太深,都有可能导致进程的栈空间不够用而死机。
基于上诉原因养成好的编程习惯可以避免或尽量避免问题的产生:
1· 使用指针前判定指针的有效性。可以避免使用空指针。
2·
尽量避免野指针的产生。初始化变量;释放申请的内存后,将对应的指针变量置成空。
3· 内存使用越界,这个只能通过编程的时候小心一些了,多留意。
如果程序死在了一个根本不可能的地方,多数可能是之前有地方内存使用越界了。