linux下gcc 编程 段错误(核心已转储) 大神救我,折磨我一天了...

本人还没入门,在网上找的资料自学的。 我想用ee.c读取config.txt里面变量对应的数字。 大概思路是用fopen打开txt文件,用sscanf读取”=“后边的数字,然后再输出验证。
但是gcc后运行 ./a.out 出现 :段错误(核心已转储)。
请大神帮我看看程序哪有错。

在的所在.c文件的目录中
在终端里面敲
1. ulimit -c unlimited
2. 在用gcc编译时,在最后加上-g
3. 运行一次错误代码,出现段错误后, 目录中有一个core文件
4. 运行:gdb ./a.out core
会自动帮你找出可能出错的代码,出现段错误一般都是越界了
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-16
额,你是想解决蓝屏问题还是蓝屏记录文件的问题,前者需要你把蓝屏代码发上来,后者我只能告诉你,只能这样了,windows是不可能不记录蓝屏的,只能自行清理咯。
第2个回答  2014-12-16
你定义一个buf[3]你用的时候buf[]里面的数最多取到2 要不然数组会越界
还望采纳追问

txt文件中有4个值啊。 应该怎么改,改成char[2]试了 不行啊

追答

有四个数看你要按字节读还是什么的 按字节读了放到数组中分别保存

追问

我不是很懂...有没有具体点的修改方案

第3个回答  2014-12-17
不知道你文件格式是如何存储的,但number和buffer的长度必须大于25,以下修改成为:
char number[32], buf[32];追问

改了32 还是同样的错误,能帮忙仔细看看吗,可能还有别的地方错误。

追答

你的文件内容是什么呢?

linux下,gcc提示“段错误 (核心已转储)”,ubuntu刚上手不大会用,谁说...
主要有以下几个方面的原因:一、内存访问出错 这类问题的典型代表就是数组越界。二、非法内存访问 出现这类问题主要是程序试图访问内核段内存而产生的错误。三、栈溢出 Linux默认给一个进程分配的栈空间大小为8M。c++申请变量时,new操作申请的变量在堆中,其他变量一般在存储在栈中。因此如果数组开的过...

linux下gcc 编程 段错误(核心已转储) 大神救我,折磨我一天了...
在终端里面敲 1. ulimit -c unlimited 2. 在用gcc编译时,在最后加上-g 3. 运行一次错误代码,出现段错误后, 目录中有一个core文件 4. 运行:gdb .\/a.out core 会自动帮你找出可能出错的代码,出现段错误一般都是越界了

段错误 (核心已转储),求大神解决啊!!!
首先,对计算机进行全面的病毒扫描,确保使用最新版杀毒软件如冷林易在安全模式下运行,以清除潜在威胁。接着,进行磁盘清理和碎片整理,通过操作如在“我的电脑”中进行清理,删除临时文件,使用优化工具如优化大师或超级兔子进行注册表和垃圾文件管理。启动项也需要优化,通过msconfig关闭非必要的启动程序。进...

Linux环境下提示段错误(核心已转储) 怎么回事?
可以利用printf打印语句,一步一步调试。

LINUX下汇编出现 段错误(核心已转储)
回答:你先调下吧 gdb .\/hello core 看看那里错了

linux编程 段错误 (核心已转储)
include"stdio.h"#include"stdlib.h"#define NMEMB 50#define SIZE 10#include <string.h>int compar (const void *a,const void *b){return (strcmp((char *) a, (char *) b));}int main(){ char data[NMEMB][SIZE]={"Linux","freebsd","solzris","sunos","windows"}; char...

c语言编程,出现 段错误 (核心已转储)。
你的输入参数呢?argv是输入参数啊,你输入的时候是不是没带参数?带参数的程序最好在前面写个判断,避免这种错误:if(argc != 2) return 0;

...段错误 核心已转储 以及字符串查找删除的问题
在输出了覆盖字符串后,还应当将文件后面所有行重新写一遍才行。比如文件内容是aaaa\\nbb1bb\\ncccc\\n,如果只删除b1则变成aaaa\\nbbb\\nb\\ncccc\\n,而实际上应当改成aaaa\\nbbb\\nccc\\n。用同一个文件实现这个功能时,文件的结束很难截断。建议如下修改:FILE *fp,*tp; int l; char *p; ...

我是初学者,程序运行时出现段错误 (核心已转储),帮我看下哪里出错了谢谢...
2 #include<string.h> 3 int main()4 { 5 char a[50],a_1[50];6 char b[50];7 int i,j,len;8 char null;9 10 printf("输入字符串\\n");11 gets(a);12 13 len=strlen(a);14 for(i=0;i<50;i++){ 15 if(a[i]==' '){ 16 b[i]=a[i];17 break;18 } 19 ...

linux下,gcc提示“段错误 (核心已转储)”,ubuntu刚上手不大会用,谁说...
主要有以下几个方面的原因:一、内存访问出错 这类问题的典型代表就是数组越界。二、非法内存访问 出现这类问题主要是程序试图访问内核段内存而产生的错误。三、栈溢出 Linux默认给一个进程分配的栈空间大小为8M。c++申请变量时,new操作申请的变量在堆中,其他变量一般在存储在栈中。因此如果数组开的过...

相似回答