“调试”的结果和“运行”的结果不一样,什么情况下回出现这种现象呢? 5
情形1:每次“调试”过程中变量的值是相同的,每次“运行”过程中的变量的值也相同(不是两个变量相同,而是某个变量在多次调试(或运行)下相同),但是“调试”和“运行”之间各量...
情形1:每次“调试”过程中变量的值是相同的,每次“运行”过程中的变量的值也相同(不是两个变量相同,而是某个变量在多次调试(或运行)下相同),但是“调试”和“运行”之间各量的结果有差异。
情形2:我在程序最后一句设置断点进行调试,一切正常地跑完了整个程序,但是如果是“运行”,则在途中卡住报错了!
谢谢大神! 展开
情形2:我在程序最后一句设置断点进行调试,一切正常地跑完了整个程序,但是如果是“运行”,则在途中卡住报错了!
谢谢大神! 展开
展开全部
这个是一个普遍现象,主要是一些初学者不会设计程序和调试程序引起的。
从以往调试的情况来看90%以上是严重的错误,有一些是库函数使用不当。罕见的是编译器或者调试器本身问题。
我举一个错误的例子,(问题很严重的),你看看你的程序里有没有类似的。这类问题有很多,很麻烦的,都是写程序写的太少,又不注意规范。
下面的程序存在严重错误,但是结果不一定会错误。
int *foo(int i) {
int p;
p=2*i;
return &p; //错误的种子
}
int main(int argc, char *argv[]) {
int *q;
q=foo(8);
printf("*q is %d\n", *q);
return 0;
}
从以往调试的情况来看90%以上是严重的错误,有一些是库函数使用不当。罕见的是编译器或者调试器本身问题。
我举一个错误的例子,(问题很严重的),你看看你的程序里有没有类似的。这类问题有很多,很麻烦的,都是写程序写的太少,又不注意规范。
下面的程序存在严重错误,但是结果不一定会错误。
int *foo(int i) {
int p;
p=2*i;
return &p; //错误的种子
}
int main(int argc, char *argv[]) {
int *q;
q=foo(8);
printf("*q is %d\n", *q);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询