c语言程序退出之后段错误

问题描述

c语言程序退出之后段错误

我有一个程序,在本机执行没问题,redhat6.4.但是在同事的centos5里面有段错误
gdb调试显示错误位置是??()
是在程序退出之后,最后一个}之后段错误
求助大神,应该是什么原因导致的

解决方案

复制源代码,到出错的目标机上调试一下。
是什么原因,只有实际的调试后才能知道。

解决方案二:

内存操作越界可能性比较大,可以增加异常捕获,看看是错误出在哪一段。
http://blog.csdn.net/qq_27183003/article/details/50397009

解决方案三:

野指针造成的可能性最大

时间: 2025-01-30 09:14:36

c语言程序退出之后段错误的相关文章

《21天学通C语言(第6版•修订版)》一1.5 第一个C语言程序

1.5 第一个C语言程序 21天学通C语言(第6版•修订版)读者也许迫不及待地想编写第一个C语言程序.为帮助读者熟悉编译器,程序清单1.1包含一个小型程序,功能快速地完成.现在,读者也许无法理解其中的所有内容,但不用担心,尽管编写.编译并运行它. 这里的演示使用的是一个名为hello.c的程序,该程序只是将单词"Hello, World!"显示到屏幕上而已.该程序常被用来介绍C语言编程,很适合读者进行学习.程序清单1.1列出了hello.c的源代码.输入该程序清单时,请不要输入最左边的

求解决-按照例子不能正常输出,程序不知道那里出错误了,请大神们指出来,我好改正,请用c语言编写

问题描述 按照例子不能正常输出,程序不知道那里出错误了,请大神们指出来,我好改正,请用c语言编写 #include #include /**本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素. 输入格式: 输入在第一行中给出一个正整数n(1≤n≤10).第二行输入n个整数,用空格分开. 输出格式: 在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格. 输入样例: 4 10 8 1 2 输出样例: 2 1 8 10 **

代码-麻烦各位前辈看一下我这个C语言程序,找不出错误。

问题描述 麻烦各位前辈看一下我这个C语言程序,找不出错误. 我要对一个数组的数字进行排序,代码是这样的: //声明:该程序中输入的数据不能重复! #include int imin(const int va[], int n) // find the min of va[] { int i, min; min = va[0]; for (i = 0; i < n; i++) { if (min > va[i]) min = va[i]; } return min; } int imax(con

c语言-C语言程序,编译没错,但执行完之后就提示错误。

问题描述 C语言程序,编译没错,但执行完之后就提示错误. #include #include #include struct st { char name[50]; int age; }info; void main(void) { struct st s[20]; char FileA[50]; FILE*fp; if((fp=fopen("e:students.txt","wt"))=NULL) { printf("打开过程中有错,请检查n"

关于单片机旋转POV显示C语言程序的错误

问题描述 关于单片机旋转POV显示C语言程序的错误 #include #define uint unsigned int #define uchar unsigned char uchar code buffer[]= //*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*// { 0x10,0x60,0x02,0x8C,0x20,0x18,0x08,0x08,0x88,0x7F,0x88,0x08,0x28,0x18,0x08,0x00, //沈 0x04,0x04,0x7E

c语言-C语言内存分配malloc导致的程序退出

问题描述 C语言内存分配malloc导致的程序退出 char *p; while (1) { p = malloc(1); *p = 0; } 这样写最后是因为没有内存退出还是向0写入退出?怎么感觉是内存完了 解决方案 内存分配失败就会返回空指针 解决方案二: 堆内存被使用完后,在申请就睡失败,p就是NULL,即地址为0写入,而这个地址是受程序保护的,无法写入因此退出 解决方案三: 个人觉得你这个应该是会导致堆内存不够,导致程序异常退出

Android编程实现捕获程序异常退出时的错误log信息功能详解

本文实例讲述了Android编程实现捕获程序异常退出时的错误log信息功能.分享给大家供大家参考,具体如下: 很多时候我们程序无缘无故的就挂掉了,让我们一头雾水,如果刚好我们在调试,那我们可以通过错误log来查看是什么原因引起的程序崩溃.但是当我们把程序发别人使用时,就没那么好运了,那我们要怎么样才能捕获到那个错误异常呢?还好Android给我们提供了UncaughtExceptionHandler 这个类,我们可以通过实现这个类的接口,来全局捕获那个让程序崩掉的错误log信息.可以将错误的lo

c语言-下面程序是否有语法错误,有请改正并写出打印结果。

问题描述 下面程序是否有语法错误,有请改正并写出打印结果. 解决方案 不能将char* 转换为long*需要强制转换 解决方案二: 程序没有问题,会有一些编译警告,64位系统输出可能如下: [8],90 [8],234567890 解决方案三: 程序没有问题,会有一些编译警告,64位系统输出可能如下: [8],90 [8],234567890 解决方案四: 将 char* 转换为 long* 需要强制转换,即: long *pLong = (long *)str; 还有,long * 指针无法按

c语言程序的存储区域与const关键字的使用方法

一.C语言程序的存储区域 1.由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段.编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件. 2.C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成.在程序运行时又会产生其他几个部分,各个部分代表了不同的存储区域: 1>代码段(Code或Text) 代码段由程序中执行的机器代码组成.在C语言中,程序语句执行编译后,