最近项目调试,代码很多崩溃,遇到的情况大概有以下几种
-
内存越界问题
vs崩溃,调用堆栈给出的位置有时候不准,可能是定位位置栈空间的前面越界导致的,这种情况查起来费劲巴拉的,刚开始写的时候一定得小心检查,
假如越界了,但是用的是堆空间,测试验证数据的时候可能看不出来,也不会提示崩溃,但是呢开了windebug就能提示崩溃了 -
if判断条件少考虑
大部分只考虑了正常运行的情况,遗漏了不正常情况的分支 -
释放问题,重载=
在函数内部释放,必须得用二级指针,类写了析构,作为输入传入函数,如果没使用指针或者引用,这个形参出函数作用域就会被释放掉,以至于最后的值不对。
指针常常忘记深拷贝不能直接=