linux中的段错误,百度了很久都没有找到类似的情况。望高手们指点......
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中的段错误,百度了很久都没有找到类似的情况。望高手们指点......相关的知识,希望对你有一定的参考价值。
代码不长,编译能通过,就是在执行的时候出现“段错误”。
代码如下:
#include <stdio.h>
long fib(int);
main()
long k;
k=fib(2);
printf("k=%d\n",k);
long fib(int g)
switch(g)
case0:return 0;
case1:
case2:return 1;
return(fib(g-1)+fib(g-2));
#include <stdio.h>
long fib(int);
main()
long k;
k=fib(2);
printf("k=%d\n",k);
long fib(int g)
switch(g)
case 0: // <-- case和0之间空个空格,下同
return 0;
case 1:
case 2:
return 1;
return(fib(g-1)+fib(g-2));
/*
* 现在反回来说为什么你的程序会出现段错误
* 当你访问被保护的内存地址时,就会出现段错误。
* 一般来说,数组的越界使用,或者堆栈溢出就会引发段错误。
* 你的程序则是触发了后者。
* switch(g)
*
* case 条件1:
* ...
* case 条件2:
* ...
*
* 这些条件一旦没有中间的空格,就变成了“标号”(label)。
* 结果就是,语法上没有错误,但是运行的时候不管g是什么值都不会进入
* switch。
* 导致不停的递归,而递归的最后结果就是把堆栈撑爆,最终导致段错误。
* 你可以在fib的递归之前加上printf打印此时的g值,你就明白了。
* 楼下请仔细看这段,几个case之间没有空格。帖到vim里一自排格式,错误就出来了。
case0:return 0;
case1:
case2:return 1;
* */ 参考技术A 楼主的程序好像没什么错,楼上说是空格,我想你写程序,这么几行代码,不可能犯这么低级的错误,你可以调试一下
Maven的Oracle配置错误
第一次发博文,希望把自己的经验写下来,防止以后忘记.
今天碰到一个错误,就是用maven搭建项目时,pom.xml文件中的Oracle配置总是报错,在百度上搜了很久都没有搜到原因,后来才知道,Oracle是收费的,所以他的jar包是不能直接下载的.
解决方案:
1.交钱给下载,
2.上述不实际,可以去百度上下载别人的本地仓库,带Oracle的,有很多,下载之后替换掉目录中的Oracle即可!
以上是关于linux中的段错误,百度了很久都没有找到类似的情况。望高手们指点......的主要内容,如果未能解决你的问题,请参考以下文章
C#.net相关。DataGridViewComboBoxColumn 不点击不显示数据,百度了很久,也没有找到解决方法!等大神了