不能调试+全局变量无故变化 vc6.0

来源:互联网 发布:域名已没什么价值 编辑:程序博客网 时间:2024/06/12 01:04

1. 不能调试,错误提示: one or more breakpoints cannot be set and have been disabled...

网上查了资料没能解决,最后的解决方法:

把工程拷贝到新的目录下,删除工程中的 ncb, .opt, .plg文件。 注意是拷贝,不是剪切

重新设置断点进行调试,OK!


2.程序中有个全局变量在给一个“数组”赋值后就无故变化,不能理解,这个赋值语句怎么会对这个无关的全局变量造成影响呢?

inputBuf[i] = inchar;  //造成全局变量scanCount变化


程序中的定义如下:

char inputBuf[HALF_BUFSIZE] = {'\0'};      //读入字符的对半缓冲区
int scanCount = 0;                                    //缓冲区当前位置的字符


分析:首先,这是全局变量,是在堆中的空间,在内存中scanCount这个变量是紧挨着 inputBuf 的,

错误原因:inputBuf 定义小了,所以当超过 inputBuf 超过 HALF_BUFSIZE 时,就会变成对scanCount的赋值。