导航:首页 > 源码编译 > 为什么会编译成功而调试失败

为什么会编译成功而调试失败

发布时间:2022-10-10 02:46:27

1. 为什么编译没错但是调试按enter没反应,程序错在哪啊

最主要的问题在sum+=1/(n+1)这一句。因为算式右边是整数运算,所以结果永远为0,sum的值不变。改成sum+=1.0/(n+1)即可,右边会进行隐式转换。
还有printf("%d
card(s)\n",n)这句后面还应该跟一句break,否则因为m的值不变,一旦进入while(m>0.0)循环,将无法终止,成为
死循环
,不停打印card。
要让scanf接受EOF,可输入CTRL+Z。

2. c语言编程,编译成功,但是调试失败~!!怎么回事。。求助~~

楼主你好!
你是不是发现编译没有报错!但是一旦运行就会进入异常而中断报错!
我通过调试发现是栈溢出而造成的异常中断!
这个问题还得从你的 float x[60000][15] 说起。且不算后面定义的变量,通过计算我们知道大概将近3.6M左右!
这个设计到程序的堆栈问题!不知道你是否了解程序的反汇编,简单的说,每个程序都有自己的栈,你定义的局部变量就在这个栈上!而这个栈不是无限的大的,在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M,如果申请的空间超过栈的剩余空间时,将提示overflow!具体可以去了解一下程序的反汇编!
因此,你代码本身没有错误,但是运行不起来是栈溢出了!
如果,你还是想要分配60000个15个成员float类型的数值,那你就得使用malloc来申请空间,malloc申请的空间是在堆上的,malloc函数你自己可以去了解,这个跟栈是不一样的,有兴趣可以去了解堆和栈的区别!
以上是我的看法,希望我的回答对你有帮助!

3. 【快来帮我~~】为什么我的C语言程序可以编译等都通过 但是运行起来之后就出现调试 不能运行呢

1. “MGraph G;”没有初始化。
建议做一下修改:
void InitGraph(MGraph& G)//创建一个函数用来生成G图
{
int i,j;
G.vexnum=4;
...// 其他同,把" return G;"去掉。

void ShortestPath()
{
MGraph G;
... // 其他同
scanf("%d",&v);

InitGraph(G); // 加上这一句
...

2. “for(v=0;v<G.vexnum;++v)”, v保存着输入的值,但这里又重新赋值为0.
是不是应该是“for(v0=0;v0<G.vexnum;++v0)”?

4. C语言编译成功但生成失败,先前明明可执行,一下子就有错误了

1编译阶段,执行的是对单个文件的转换,从源代码转换成二进制文件。2链接阶段,将每个源文件转成的二进制文件,及相关的系统库文件共同打包生成可执行文件。3从定义上可以看出,链接阶段,出现错误有两种可能:1)函数中引用了不存在的函数。2)编译环境有问题,导致ld出错。

5. VC++程序编译时能正常运行,但是在Debug中运行生成的可执行文件却出错,是什么原因

在VC++,里面会生成两种不同的文件包 一种是release,另一种就是debug,前者是正式发行版,在编译链接的过程中,它会对代码进行优化和一些相应的处理,而后者则是调试版,你在VC编译生成的文件一般就是debug版本,不然它是不会在你的文件夹中生成debug文件夹的,所以,你在文件夹中执行文件出问题,有一种可能就是误删了文件夹下的文件,还有,你的出错是指什么错误,是程序崩溃吗?

6. 程序编译过了,但是无法运行出结果是怎么回事

编译过了没错误,说明你的代码语法没错误。运行结果不对,是你的代码逻辑有问题,仔细检查代码逻辑流程是不是不对,调试调试。

7. C语言程序问题,编译成功可却不能运行,这是为什么

编译,只检查各函数内部的语法是否有错误。
连接,除了做编译要做的检查以外,还要检查各函数的调用是否正确。
楼主这情况,最常见的就是哪个函数名敲错了,从头到尾只检查函数名的拼写是否正确

8. 运行VS2010, 编译的时候是生成成功的,但是启动调试就生成失败了,求c++大神搭救

link error 表示链接错误, 很有可能你调用函数时该函数或没声明没定义或定义没声明或声明没定义或调用的地方落后于函数声明地方.

其中 我说言声明函数(如int search(char c)像这样
// some codes like #include ....
int search(char c); // 注意没有花括号{} 即不是定义
我说的定义即是函数体(函数的实现) 在c++中函数声明和函数实现可以分开 (java中声明了即马上实现,除非抽象函数(C++中的纯虚函数)或接口中的函数(其实接口中的函数就是抽象函数))
int search(char c){
// code here 在这里写实现
}
常见问题,main函数调用search函数,但是你却没在main()之前声明他而是在main之后实现了他,故找不到search函数

阅读全文

与为什么会编译成功而调试失败相关的资料

热点内容
app保存草稿怎么用 浏览:806
安卓如何进入proumb 浏览:141
主机虚拟云服务器 浏览:617
删除分区加密的空间会不会恢复 浏览:703
京东app客户上门怎么看搜索量 浏览:739
怎么在农行app购买黄金 浏览:45
c型开发板和单片机 浏览:146
虚拟机建立用户的模板文件夹 浏览:904
无锡代码编程培训班 浏览:631
eps图形数据加密 浏览:933
没有滴滴app怎么打车 浏览:101
大数乘法java 浏览:1001
如何登录服务器看源码 浏览:526
如何做服务器端 浏览:157
注册服务器地址指什么 浏览:435
文本命令行 浏览:98
扑克牌睡眠解压 浏览:197
rc4算法流程图 浏览:163
胡萝卜解压方法 浏览:39
扫描pdf格式软件 浏览:880