使用printf时出现分段错误

时间:2017-08-08 14:19:09

标签: c

我正在尝试从文件中读取并打印每个字符串读取。但是当我尝试打印它时,我遇到了分段错误。

调试告诉我,我的错误是由于行printf("%s\n",test);

我检索字符串的功能是:

char* Lire_string(){
     size_t size = 10 ;
     char *symbole ;
     symbole = realloc(NULL, sizeof(char)*size);
     size_t len = 0 ;
     if(!symbole) return symbole ; 
     car_cour = Lire_car(fichier);
     if (car_cour == '"'){
         do {
            symbole[len] = car_cour ;
            car_cour = Lire_car(fichier);
            len++;
            if(len==size){
                symbole = realloc(symbole, sizeof(char)*(size *= 2));
                if(!symbole) return symbole ;
            }
         }while(car_cour != '"' );

         symbole[len] = car_cour ;

         symbole[len++] = '\0' ;

         return realloc(symbole, sizeof(char)*len) ;
     }
}   

我的主要是:

fichier = fopen("export.json","r");

if ((fichier != NULL)){
    do {
       char* test = Lire_string();
       printf("%s\n",test);
       free(test);
    } while (feof(fichier)==0);
}
else {
    exit(EXIT_FAILURE);
}
return 0;

我试过看类似的问题,但他们没有解决我的问题。

1 个答案:

答案 0 :(得分:3)

您可能会收到一些警告,因为您的函数仅在car_cour == '"'时返回一些内容。否则没有明确的返回表达式