数据-Segmentation fault问题

问题描述

Segmentation fault问题
题目如下
Description
输入n(n<100)个整数,找出其中最小的数,将它与最前面的数交换后输出这些数。

Input
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。

Output
对于每组输入数据,输出交换后的数列,每组输出占一行。

Sample Input
4 2 1 3 4
5 5 4 3 2 1
0
Sample Output
1 2 3 4
1 4 3 2 5

我的代码
#include
#include
#include
#include
#include
using namespace std;

int main()
{
int nbcd;
int number[100];
while (cin >> n)
{
if (n >= 0&&n {
if (n == 0)
break;
for (int a=0; a {
cin >> number[a];
if (a == 0)
{
b = number[a];
}
if (number[a] < b)
{
b = number[a];
c = a;
}
}
d = number[0];
number[0] = b;
number[c] = d;
for (int a = 0; a < n; a++)
{
cout << number[a]<<"" "";
}
cout << endl;
}
}
}

在OJ上提示Segmentation fault:段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区域,求解答

解决方案

http://www.cnblogs.com/bucuo/archive/2012/06/05/2535554.html

解决方案二:
?

今天调试程序时遇到了一个问题,当我用GDB调试程序时出现了Segmentation fault,以前没有遇到过,最后查看资料,有点明白了。

??? 出现了Segmentation fault,基本上的原因是,非法的内存访问。
例如数组的越界,在循环操作时循环变量的控制问题,也有字符串拷贝时长度溢出,指针指向了非法的空间,还有......
答案就在这里:Segmentation fault 问题

时间: 2024-11-03 00:57:02

数据-Segmentation fault问题的相关文章

execute copyed function code : Segmentation fault

函数在C里面可以认为是指针, 但是又有特殊的一面. 如 调用 函数test 时, *test, test, &test 可以相互通用. 因为它们都指向同一个地址. 如 :  [root@db-172-16-3-150 zzz]# cat a.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> typedef unsigned char byt

c++-关于pcap_dump_close出现Segmentation fault

问题描述 关于pcap_dump_close出现Segmentation fault 最近在维护上届学长的一个应用协议识别毕业设计项目.很大一部分内容使用C++写的.其中有个协议的过滤,之前一直使用挺好的,但是数据只要超过30M就出现Segmentation fault(core dump)错误. 使用gdb查看的信息如下: 其中main.cpp内容如下: 这个方法的主要作用就是从一个流文件(pcap格式,经过协议识别处理后,每一条流记录都由一个特殊的数据报文头表示,其中32字节代表一种应用协议

【Oracle】安装完oracle 9i,执行sqlplus 遇到Segmentation Fault

安装完成oracle 9.2.0.4之后,执行sqlplus 命令时遇到Segmentation Fault 错误,查询 Metalink 是一个bug:Segmentation Fault When Execute Sqlplus, Oracle, Lsnrctl After New/Patchset Install [ID 316746.1] 对于新安装的软件或者打过补丁的oracle数据库(9.2.0.1 to 10.1.0.2,for Linux x86,Linux x86-64)都可能

oracle 9.2.0.8 exp导出dmp导入报Segmentation fault/段错误故障解决

在9.2.0.8 rac环境中,使用exp导出来dmp文件任何报错(按单个表,按用户导出,使用tns方式远程exp导出),包括重启数据库后导出,无法导入到其他数据库中(本库,tns方式远程导入,ftp传输到远程导入,9i/10g/11g版本)报错类似有setillegal instruction(coredump),段错误,Segmentation fault等,以下列出来几个报错信息--导入11.2.0.2版本 Import: Release 11.2.0.2.0 - Production o

c语言-C语言segmentation fault?

问题描述 C语言segmentation fault? #include main(){ int M, N, T, S[M][N], B; scanf("%d%d%d", &M, &N, &T); int i, j; for (i=0;i<M;i++){ for (j=0;j<N;j++){ scanf("%d",&S[i][j]); }; }; if (T == 0){ for (i=0;i<M;i++){ for

指针-么么哒、这题用C语言为什么出现Segmentation fault,求解释并纠错(谢绝新代码)

问题描述 么么哒.这题用C语言为什么出现Segmentation fault,求解释并纠错(谢绝新代码) //依次输出字符串中的数字团,比如poq89ayu1u&129aa //就输出89,129,一共2个数. //萌妹纸诚心诚意求修改 include int main() { char str[80],*pstr; int i=0,flag=1,num=0;pstr=str; gets(str); while(flag==1) { for(i=0;(str+i)!='';i++) { if('

c-C语言输出数字团,代码为什么出现Segmentation fault,求解释并纠错??

问题描述 C语言输出数字团,代码为什么出现Segmentation fault,求解释并纠错?? //题目:输出字符串里数字团,以及个数.比如89cy129 //就输出89,129,一共2个数. 代码在这个百度知道的问题上:well,看来百度知道上面没有人会做? 跪谢!!! 源代码: include int main() { int a[80],i=0,*pa,an=0; char str[80],*pstr=str; void getnum(char pstr); gets(str); get

c++-Segmentation fault问题

问题描述 Segmentation fault问题 //c语言实现输入任意长度的字符串#include #include int main (void ){char *string = NULL *temp = NULL;char ch;int i;//先将字符串初始化为空string = (char *)malloc(1);string[0] = '';//len为实际长度(包括空字符)int len = 1;while ((ch = getchar())!= 'n'){ //申请一个新字符串

iostream-C++ 使用sort()函数 出现segmentation fault

问题描述 C++ 使用sort()函数 出现segmentation fault #include <iostream> #include <algorithm> using namespace std; int main() { int n,m,k; int set=1; int *ptr=nullptr; int nm; int i; while(cin>>n>>m>>k) { if(n<1||n>10|| m<1||m&g