今天在Ubuntu上使用c语言写程序,出现了“段错误 (核心已转储)”。
所谓段错误就是访问了不可访问的内存,段错误常由以下几种情况引起:
1、访问系统数据区
2、内存越界
如数组越界
3、栈溢出
C语言中,函数参数的值,局部变量存放在栈中。windows中栈的大小是1M(我的vs2013是这样,可通过“项目”->“属性”->“链接器”->“系统”->“堆栈保留大小”查看和设置)。linux中栈的大小是8M(我的Ubuntu 14.04是这样,可通过ulimit -s进行查看和设置)。