C++ 中判断非空的错误指针
近在写网络上的东西,程序经过长时间的运行,会出现崩溃的问题,经过DUMP文件的查看,发现在recv的地方接收返回值的时候,数据的长度异常的大差不多16亿多字节.而查看分配后的char指针显示为错误的指针,这可能是接收数据不对应产生的问题解决思路如下: 1.对返回值长度进行判断,如果超过项目内大的返回值直接return(比如我项目内的大返回值为5000,哪么我设定的值为10000); 2.对char指针进行判断,由于这里返回的数据是有的,只是解析不出来而已,这里是一个非空的错误指针,所以进行二次验证,使用IsBadWritePtr这个API如下实例: BOOL WINAPI IsB
用户评论