Erreur segmentation sur raspberry pi [Résolu/Fermé]

Signaler
Messages postés
328
Date d'inscription
mardi 12 juin 2012
Statut
Membre
Dernière intervention
26 février 2015
-
Messages postés
328
Date d'inscription
mardi 12 juin 2012
Statut
Membre
Dernière intervention
26 février 2015
-
Bonjour,

je vous contacte car j'ai un problème,

mon prog fonctionne très bien sur pc (Ubuntu 12.04), mais dès que je l'exécute sur raspberry PI, j'ai une erreur de segmentation.
void parser(char *fich,char fichxml[30][40]){

char c;
char buffer[500];
    char* input = fich;
    FILE *input_file;

    input_file = fopen(input, "r");

    if (input_file == 0)
    {
        //fopen returns 0, the NULL pointer, on failure
        perror("Canot open input file\n");
        printf("erreur xml");
    }
    else
    {
        int i=0;
        int j=0;

        while ((c =fgetc(input_file)) != EOF )
        {
            if(c != '$'){
                fichxml[j][i]=c;
                i++;

            }
            else{
                fichxml[j][i]='\0';
                j++;
                i=0;
            }

        }
        fichxml[j][i] = '\0';

        }


    fclose(input_file);
    int comp=0;
    for(comp=0;comp<20;comp++){
        printf("%s\n",fichxml[comp]);
    }


}



le fichier est de la forme :

AAA$bbbbbbb$ccccccc$dddddddddddd$eeeeeeeee .

apparemment l'erreur serai au niveau de fopen mais je n'y arrive pas, un peu d'aide serait la bien venue :)

2 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 736
char c;
int c; serait mieux.

if (input_file == 0)
Ce n'est pas à 0 qu'il faut comparer mais à NULL.

Comment est déclaré et initialisé fich ?

Je ne vois pas de vérification d'écriture dans le tableau. Car si ton fichier contient plus de 40 '$' consécutifs, ça plante. De même poru le nombre de lignes.

Messages postés
328
Date d'inscription
mardi 12 juin 2012
Statut
Membre
Dernière intervention
26 février 2015
19
C'etait ca ! Merci ;)