Erreur segmentation sur raspberry pi

Résolu
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

  1. Contributeur
    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.