我正在尝试从文件中读取并打印每个字符串读取。但是当我尝试打印它时,我遇到了分段错误。
调试告诉我,我的错误是由于行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;
我试过看类似的问题,但他们没有解决我的问题。
答案 0 :(得分:3)
您可能会收到一些警告,因为您的函数仅在car_cour == '"'
时返回一些内容。否则没有明确的返回表达式