在C-Segmentation故障中拆分文件

时间:2018-03-02 09:45:59

标签: c segmentation-fault include

我不熟悉在C中拆分文件和头文件的主题  当我试图运行main时,我得到Segmentation fault(核心转储)。我没有再收到任何错误。 我试图追踪这个问题,我认为这就是这条线:

main.c中的

syntax_check(fp, symb_table, &IC, &DC);

我只是试图将main.c参数*fp和另一个array strcture(symbol[])传递给syntax_check(in syntax_check.c)中的函数并执行某些操作。

main.c中:

#include "main.h"
int main()
{
  FILE *fp;
  int DC=0;
  int IC=100;
  symbol symb_table[20]; 
  if (!(fp=fopen("file.txt", "r")))
  {
   printf("Error opening file");
   exit(0);
  } 
  syntax_check(fp, symb_table, &IC, &DC);
  fclose(fp);
  return 0; 
} 

main.h:

#include <stdlib.h>
#include <stdio.h>

typedef struct {
char name[10];
int address;
int external; 
int action;
} symbol;

int syntax_check(FILE*, symbol[], int*, int*);

syntax_check.c:

#include "syntax_check.h" 

int syntax_check(FILE *fp, symbol symb_table[], int *IC, int *DC)
{
  char buff[80];        /*line to read*/
  char buff2[20];       /**/
  int i=0;
  fgets (buff, 80, fp);
  while (buff[i]!='\0'||buff[i]!=' '||buff[i]!='\t')
  {
    buff2[i]=buff[i];
    i++;
  }
  buff[i]='\0';
  if (exist(buff2))
    printf("legal");
  else
    printf("illegal");
  return 0;
}

syntax_check.h:

#include <stdlib.h>
#include <stdio.h>

typedef struct {
  char name[10];
  int address;
  int external;
  int action; 
} symbol;


FILE *fp;

int exist(char action[]);

0 个答案:

没有答案