gcc编译通过,运行却显示“段错误”的解决方法
2014-12-12 10:20
274 查看
第一次在Liunx上(liunx mint 17)使用gcc编译c文件,竟然提示“找不到stdio.h",经过google后发现执行
即可,详见:http://slipper-99933.blog.163.com/blog/static/39954044201021651833785/
为避免这类问题以后凡是定义指针都要先初始化,还要严格注意对指针先赋值后访问。
修改前:
修改后:
date:2014-10-25
sudo apt-get install build-essential
即可,详见:http://slipper-99933.blog.163.com/blog/static/39954044201021651833785/
正文:
刚学习了柔性数组,照教程写了用柔性数组生成斐波那契数列,经过一翻修改后gcc编译通过,运行时却提示“段错误”。google一下说很可能是数组赿界导致的内存访问错误。仔细检查果然是因为对未赋值的指针进行访问的缘故。为避免这类问题以后凡是定义指针都要先初始化,还要严格注意对指针先赋值后访问。
修改前:
typedef struct _soft_array { int len; int array[]; }softarray; softarray* create_soft_array(int size) { softarray* ret; ret->len = size; if( size > 0 ) { return ret = (softarray*)malloc( sizeof(*ret) + sizeof(int)*size ); } return ret = NULL; }
修改后:
typedef struct _soft_array { int len; int array[]; }softarray; softarray* create_soft_array(int size) { softarray* ret = NULL; if( size > 0 ) { ret = (softarray*)malloc( sizeof(*ret) + sizeof(int)*size ); ret->len = size; } return ret; }
date:2014-10-25
相关文章推荐
- gcc编译通过,运行却显示“段错误”的解决方法
- keil5 编译的时候不通过找不到sys.o文件,运行不通过解决方法(win10)
- gcc编译通过,但运行程序出现段错误
- 解决 gcc/g++ 编译动态库通过却无法运行的问题
- SSH Secure Shell显示GCC编译错误信息乱码解决方法
- 初学OpenCV3,运行编程入门上读取并播放视频的原版程序,编译通过但是没有任何输出,已按网上博主各种方法试,还是没有结果,大家看怎么解决?
- poj编译不通过,运行出错的解决方法
- 解决 gcc/g++ 编译动态库通过却无法运行的问题
- 使用wxWidgets编译的Windows Mobile程序运行时提示“SHCreateMenuBar failed”错误的解决方法
- asp+Access程序在Windows Server 2003 Enterprise Edition服务器上运行时无法显示备注字段的解决方法
- 查找文件夹中的所有文件及子文件夹的方法,附源程序,VC7.1下编译运行通过
- 关于.Net 调试 运行的时候,页面无法显示的解决方法
- 解决了gcc 4.3.2 无法编译通过的问题
- 为什么每次运行程序之前,VS都要先编译的解决方法
- delphi2009中的const数组[#0..#255]编译不通过的解决方法
- py2exe 编译的程序运行时出现Runtime Error的解决方法
- VS 2005 编译的程序不能运行的几个解决方法
- asp+Access程序在Windows Server 2003 Enterprise Edition服务器上运行时无法显示备注字段的解决方法
- linux下用gcc编译使用了math库函数的程序出错的解决方法
- Visual Studio 2005 编译程序不能运行的解决方法