编译没问题调试有问题
❶ 编译没有问题,运行不出结果,调试显示错误
一维数组的定义方式为
类型说明符 数组名[常量表达式]
如
int a[10]
常量表达式中可以包括常量和符号常量,不能包含变量。就是说c语言不允许对数组的大小作动态定义。
即在上面代码中,a[n]是不被允许的,n必须是常量,而不能是变量。
❷ c语言中,自定义的头文件,在源文件中调用时编译没有错,可是调试老
头文件添加后既然能编译,说明你代码本身没有问题,而调试出了问题,说明你代码逻辑肯定有问题,在出问题前后加printf调试输出可以追踪查看问题在哪一步,然后针对这个错误再进行修改。
请检查逻辑处理。
❸ keil编译运行无错,但是结果不对怎么调试
keil编译运行无错,但是结果不对调试的方法:
1、打开keil软件,这里我们已经默认打开了一个工程文件了,点击我画圈的那个按钮,进入设置。
2、在Debug那个选项卡里,我们选择usesimulator,使用软件进行调试。
3、置完毕后,我们可以在菜单栏找到这个放大镜的图标,点击这个按钮进行调试操作。
4、可以看到程序已进入正常的调试模式运行,这个时候程序是不会自动的去运行的,需要我们点击下一步的按钮才会一步一步的去执行。
❹ c语言程序编译时没错,调试提示有错,求检查
有时候,你写的语句是没有语法问题的,但是一旦出现一些循环或者是类似问题的时候,就会出现运行错误。
❺ 为什么C++编译没有错误,但是调试的时候不对
"ABC"这个常量字符串存储在程序的常量存储区域,是不能修改的。
所以char *b="ABC";然后通过b[0]='x'来修改该常量字符串就会出错。
编译的时候只检查语法是否符合语言的语义要求,编译通过不代表执行正确。
❻ c语言编程,编译成功,但是调试失败~!!怎么回事。。求助~~
楼主你好!
你是不是发现编译没有报错!但是一旦运行就会进入异常而中断报错!
我通过调试发现是栈溢出而造成的异常中断!
这个问题还得从你的 float x[60000][15] 说起。且不算后面定义的变量,通过计算我们知道大概将近3.6M左右!
这个设计到程序的堆栈问题!不知道你是否了解程序的反汇编,简单的说,每个程序都有自己的栈,你定义的局部变量就在这个栈上!而这个栈不是无限的大的,在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M,如果申请的空间超过栈的剩余空间时,将提示overflow!具体可以去了解一下程序的反汇编!
因此,你代码本身没有错误,但是运行不起来是栈溢出了!
如果,你还是想要分配60000个15个成员float类型的数值,那你就得使用malloc来申请空间,malloc申请的空间是在堆上的,malloc函数你自己可以去了解,这个跟栈是不一样的,有兴趣可以去了解堆和栈的区别!
以上是我的看法,希望我的回答对你有帮助!
❼ C++问题:编程时没有提示有错误,但是一调试就提示错误
编程时候VS使用的静态代码检查,只能检查一般的语法错误。调试时候是对代码进行编译,这时候能暴露出大部分的错误。即使通过了编译,运行时也有可能出错。所以,不要依赖编译器的功能,要保证程序的正确性,需要自己设计完善的测试用例。可以使用Vs提供的自动化单元测试工具保证程序的正确性。
当然了,没有100%正确的代码,但是通过静态检查、编译检查、单元测试覆盖,可以发现一般规模程序里绝大部分的问题
❽ codeblocks调试时出现不支持16位应用程序的提示,但编译时没有出现错误
codeblocks调试时出现不支持16位应用程序的提示是设置错误造成的,解决方法为:
1、打开软件,创建一个项目,点击console application。

❾ c语言中,自定义的头文件,在源文件中调用时编译没有错,可是调试老
头文件
添加后既然能编译,说明你代码本身没有问题,而调试出了问题,说明你代码逻辑肯定有问题,在出问题前后加printf调试输出可以追踪查看问题在哪一步,然后针对这个错误再进行修改。
请检查逻辑处理。
