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 不点击不显示数据,百度了很久,也没有找到解决方法!等大神了

sqlyog 导入 loss connection

MySQL安装最后一步apply security settings错误

回调函数通俗解析(之前看了很久都不理解,今天终于ok啦)

嵌入式学习资料,嵌入式学习心得,LINUX基本操作

redis 重启服务丢失 密码设置 现象 与 解决过程