精华网络内容 :http://www.qqread.com/network/
随机AVs(非退出)创建一个程序问题列表不仅要花很多时间,而且你所碰见的问题我很可能没有包含在内。但这里仍有很小一部分最常见的AV代码问题:
尝试访问字符串长度以外的位置。例如:字符串是NULL空的(""),并且试图访问串的第一个字符myStr[1]。引用一个空指针。可能的原因有:指针应该new却没有new、指针在被访问之前就已删除、局部和全局指针同名,全局或局部指针一个new过,但另一个被访问了。用户提出的更多建议防止访问空指针问题的一个办法是在决定使用指针做任何事之前总是先检查所有的指针。可以有许多方法来实现。最好的办法恐怕是使用assert,其实 if(myptr!=NULL) {...}的形式也不错。值得指出的是对多层指针(multi-level),if方法同样可以很好的工作。这要感谢C语言坚决支持在“if”谓词的第一个假值处就跳转(布尔赋值短路)。如:if(myptr!=NULL && myptr->itsptr!=NULL && myptr->itsptr->ptr2!=NULL) {....}
在下面的例子中
int *pArray = new int[2];
pArray[0] = 1;
pArray[1] = 2;
pArray[2] = 2; 溢出!! 数组只申请了8 bytes...
并没有弹出通常情况下的AV对话框(带红X的那个)。而是弹出了一个不带图标的对话框,同时也弹出了CPU窗口。所以,当你看到类似的情况,就可以知道有数组溢出….
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- ASP中Access到SQL Server导入升级后要做的工作 (0次浏览)
- ACCESS转SQL SERVER的数据库的几点经验 (0次浏览)
- ACCESS的参数化查询 (0次浏览)



