最近开发的程序,逻辑上都实现了,但是感觉运行不稳定,程序时不时崩溃(不是逻辑运行不正确),至少找出2个错误:
情况1:
char* szRemoteReal = new char[MAX_LENGTH]; memset(szRemoteReal, 0, MAX_LENGTH);
一定要memset,否则里面内容是随机的,岂不出问题?
情况2:
char* szRemoteReal = new char[MAX_LENGTH];
一定要delete[],而不是delete
情况3:
野指针,这是最危险的情况,这个我倒是已经理解了:http://www.cnblogs.com/findumars/p/3698013.html
情况4:
memset(p, 0, sizeof(p));
初始化长度不正确
情况5:
删除不当指针,也会造成错误。有些对象其实是指向系统区的,不一定是自己可以删除的(比如没有初始化指针就删除,此时指向0xCDCDCDCD,就当场崩溃了)
情况6:静态变量未初始化就使用
情况7:在没有上锁的情况下,使用解锁语句
总结:程序不稳定有很多原因,上次看到过一篇文章: