| 查看: 756 | 回复: 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; } |
» 猜你喜欢
氨基封端PDMS和HDI反应快速固化
已经有11人回复
博士申请都是内定的吗?
已经有11人回复
博士读完未来一定会好吗
已经有38人回复
谈谈两天一夜的“延安行”
已经有3人回复
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有11人回复
论文投稿求助
已经有4人回复
Applied Surface Science 这个期刊。有哪位虫友投过的能把word模板发给我参考一下嘛
已经有3人回复
投稿精细化工
已经有6人回复

zzy滴号
金虫 (小有名气)
- 应助: 18 (小学生)
- 金币: 5449.9
- 散金: 367
- 红花: 1
- 帖子: 282
- 在线: 895.6小时
- 虫号: 1540568
- 注册: 2011-12-17
- 性别: GG
- 专业: 理论和计算化学

2楼2015-08-08 08:45:54













回复此楼