24小时热门版块排行榜    

查看: 806  |  回复: 1

13659938271

铁虫 (初入文坛)

[求助] 这个是gdb调试错误代表什么意思 已有1人参与

Program received signal SIGSEGV, Segmentation fault.
0x00684867 in __strcmp_sse4_2 () from /lib/libc.so.6
上面这句是什么意思


程序如下:
再没有调用add_specie的时候可以运行,但是一旦调用就出现了段错误


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX_LINE 500                  
#define MAX_REACTIONS 6046
#define MAX_SPECIES 5000            
#define MAX_CHAR_SPECIES 32  




     







void add_specie (char *new_specie, char *species[],int *n_species)
{
        int i;

     
        if (strcmp (new_specie, "") == 0)
                return;
        for (i = 0; i < *n_species; i++)
        {
                if (strcmp (species, new_specie) == 0)
                        return;
        }
        i = *n_species;
        if (i < MAX_SPECIES )
        {
                if (strlen (new_specie) < MAX_CHAR_SPECIES - 1)
                {
                        strcpy (species, new_specie);
                        (*n_species)++;
                }
               
                       
       
        }

  
        return;
}



int main()
{   
//struct react reactions[MAX_REACTIONS];
const char *osu2009;
FILE *f;                 
char line[MAX_LINE];
int line_number=0;
char reactant1[MAX_CHAR_SPECIES];
char reactant2[MAX_CHAR_SPECIES];
char reactant3[MAX_CHAR_SPECIES];
char product1[MAX_CHAR_SPECIES];
char product2[MAX_CHAR_SPECIES];
char product3[MAX_CHAR_SPECIES];
char product4[MAX_CHAR_SPECIES];
double alpha;
double beta;
double gamma;
int reaction_type;
int reaction_no;
char *species[MAX_SPECIES];
int *n_species;

if((f=fopen("osu2009.chm","r"))==NULL)
{
printf("can not open\n");
exit(0);
}

while(fgets(line,MAX_LINE,f)!=NULL)
{
line_number++;

if (line[0]=='#') continue;

                strcpy (reactant1, "");
                strcpy (reactant2, "");
                strcpy (reactant3, "");
                strcpy (product1, "");
                strcpy (product2, "");
                strcpy (product3, "");
                strcpy (product4, "");
                alpha = 0;
                beta = 0;
                gamma = 0;
                reaction_type = 0;    //付初始值
                reaction_no = 0;


     
if ((sscanf (line, "%s -> %s %lf %lf %lf %d %d",reactant1, product1, &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 7)
           
               ||(sscanf (line, "%s + %s -> %s + %s %lf %lf %lf %d %d",reactant1, reactant2, product1, product2,&alpha, &beta, &gamma, &reaction_type, &reaction_no) == 9)

               ||(sscanf (line, "%s + %s -> %s %lf %lf %lf %d %d",reactant1, reactant2, product1, &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 8)

               ||(sscanf (line, "%s + %s -> %s + %s + %s %lf %lf %lf %d %d",reactant1, reactant2, product1, product2, product3,&alpha, &beta, &gamma, &reaction_type, &reaction_no) == 10)
  
                     || (sscanf (line, "%s + %s -> %s + %s + %s + %s %lf %lf %lf %d %d",reactant1, reactant2, product1, product2, product3,product4,&alpha, &beta, &gamma, &reaction_type, &reaction_no) == 11)
                     ||(sscanf (line, "%s + %s + %s -> %s + %s %lf %lf %lf %d %d",reactant1, reactant2, reactant3, product1, product2,&alpha, &beta, &gamma, &reaction_type, &reaction_no) == 10));



            if ((strcmp (reactant1, "cosmic-ray") == 0)
                        || (strcmp (reactant1, "uv-photon") == 0)
                        || (strcmp (reactant1, "photon") == 0))
                {
                        strcpy (reactant1, reactant2);
                        strcpy (reactant2, reactant3);
                        strcpy (reactant3, "");
                }
                if ((strcmp (reactant2, "cosmic-ray") == 0)
                        || (strcmp (reactant2, "uv-photon") == 0)
                        || (strcmp (reactant2, "photon") == 0))
                {
                        strcpy (reactant2, reactant3);
                        strcpy (reactant3, "");
                }
                if ((strcmp (reactant3, "cosmic-ray") == 0)
                        || (strcmp (reactant3, "uv-photon") == 0)
                        || (strcmp (reactant3, "photon") == 0))
                {
                        strcpy (reactant3, "");
                }
if ((strcmp (product1, "cosmic-ray") == 0)
                        ||(strcmp (product1, "uv-photon") == 0)
                        || (strcmp (product1, "photon") == 0))
                {
                        strcpy (product1, product2);
                        strcpy (product2, product3);
                  strcpy (product3, product4);
                        strcpy (product4, "");
                }
                if ((strcmp (product2, "cosmic-ray") == 0)
                        || (strcmp (product2, "uv-photon") == 0)
                        || (strcmp (product2, "photon") == 0))
                {
                        strcpy (product2, product3);
                  strcpy (product3, product4);
                        strcpy (product4, "");
                }
                if ((strcmp (product3, "cosmic-ray") == 0)
                        || (strcmp (product3, "uv-photon") == 0)
                        || (strcmp (product3, "photon") == 0))
                {
                  strcpy (product3, product4);
                        strcpy (product4, "");
                }
                if ((strcmp (product4, "cosmic-ray") == 0)
                        || (strcmp (product4, "uv-photon") == 0)
                        || (strcmp (product4, "photon") == 0))
                {
                        strcpy (product4, "");
                }


                add_specie (reactant1, species, n_species);
                add_specie (reactant2, species, n_species);
                add_specie (reactant3, species, n_species);
                add_specie (product1, species, n_species);
                add_specie (product2, species, n_species);
                add_specie (product3, species, n_species);
                add_specie (product4, species, n_species);


              //     printf("reactant1:%s  reactant2:%s  reactant3:%s  product1:%s  product2:%s  product3:%s  product4:%s  alpha:%.2e  beta:%.2e  gamma:%e  reaction_type:%d  reaction_no: %d\n",reactant1,reactant2,reactant3,product1,product2,product3,product4,alpha,beta,gamma,reaction_type,reaction_no);



}

               
fclose(f);
return 0;
}
回复此楼

» 猜你喜欢

选择性所得税
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzy滴号

金虫 (小有名气)

【答案】应助回帖

void add_specie (char *new_specie, char *species[],int *n_species)中的参数species是一个指针数组,而new_specie是一个指针。调用add_specie处传入的参数类型不符,而且二者在 if (strcmp (species, new_specie) == 0)不正确的使用,把[]去掉试一试。
天道酬勤
2楼2015-08-08 08:45:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 13659938271 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 生物学学硕求调剂 +7 小羊睡着了? 2026-03-23 10/500 2026-03-25 02:24 by 清风拂扬。 m
[考研] 085601求调剂总分293英一数二 +3 钢铁大炮 2026-03-24 3/150 2026-03-24 22:03 by bingxueer79
[考研] 085602 289分求调剂 +5 WWW西西弗斯 2026-03-24 5/250 2026-03-24 18:51 by jhhcooi
[考研] 材料考研调剂生 +3 黄粱一梦千年 2026-03-24 3/150 2026-03-24 17:00 by barlinike
[材料工程] 一志愿C9材料与化工专业总分300求调剂 +4 曼111 2026-03-24 5/250 2026-03-24 15:44 by 星空星月
[考研] 299求调剂 +7 某某某某位 2026-03-21 7/350 2026-03-24 15:24 by cuifj
[考研] 一志愿北京化工大学材料与化工 264分各科过A区国家线 +3 哈哈157349 2026-03-21 3/150 2026-03-24 14:11 by zhyzzh
[考研] 341求调剂(一志愿湖南大学070300) +5 番茄头--- 2026-03-22 6/300 2026-03-23 23:45 by Txy@872106
[考研] 材料专业求调剂 +11 hanamiko 2026-03-18 11/550 2026-03-23 23:12 by peike
[考研] 材料专硕英一数二306 +8 z1z2z3879 2026-03-18 8/400 2026-03-23 20:49 by baobaoye
[考研] 333求调剂 +3 ALULU4408 2026-03-23 3/150 2026-03-23 19:04 by macy2011
[考研] 生物学一志愿985,分数349求调剂 +6 zxts12 2026-03-21 9/450 2026-03-23 18:37 by macy2011
[考研] 一志愿东华大学化学070300,求调剂 +7 2117205181 2026-03-21 8/400 2026-03-22 22:55 by chixmc
[考研] 354求调剂 +7 Tyoumou 2026-03-18 10/500 2026-03-22 11:11 by 人来盛
[考研] 324分 085600材料化工求调剂 +4 llllkkkhh 2026-03-18 4/200 2026-03-21 01:24 by JourneyLucky
[考研] 308求调剂 +3 阿姐阿姐家啊 2026-03-18 3/150 2026-03-20 23:24 by JourneyLucky
[考研] 求调剂 +3 @taotao 2026-03-20 3/150 2026-03-20 19:35 by JourneyLucky
[考研] 086500 325 求调剂 +3 领带小熊 2026-03-19 3/150 2026-03-20 18:38 by 尽舜尧1
[考研] 085600材料与化工调剂 324分 +10 llllkkkhh 2026-03-18 12/600 2026-03-19 14:33 by llllkkkhh
[考研] 收复试调剂生 +4 雨后秋荷 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
信息提示
请填处理意见