Erreur segmentation sur raspberry pi

Résolu/Fermé
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 - 23 avril 2014 à 15:56
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 - 23 avril 2014 à 22:57
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

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 avril 2014 à 17:09
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.

0
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 19
23 avril 2014 à 22:57
C'etait ca ! Merci ;)
0