|
|
|
|
Bonjour,
je suis débutante en c et j'ai un problème lors de l'éxécution de mon programme : cela m'affiche erreur de segmentation. J'ai essayé de chercher d'où cela pouvait venir, j'ai trouvé la ligne mais je ne vois pas comment régler le problème. s'il vous plaît aidez-moi!!
(je précise que mon programme permet d'afficher les données qui correspondant à un nom dans un fichier répertoire)
struct ligne
{
char *champ[8];
}
struct ligne ligne;
void
initialisation_struct( )
{
size_t cpt=1;
char c;
int i=0;
while((c=getchar( ) ) ! = '\n')
{
if ( c == '\t')
{
i=0;
cpt ++;
}
else
{
ligne.champ[cpt][i]=c; /* c'est cette ligne qui pose problème*/
i++;
}
}
}
void
affichernom( char *nom)
{
initialise_struct(ligne);
while ( ! strcoll (nom, ligne.champ[1])
initialise_struct(ligne);
printf("%s %s %s %s %s %s %s %s\n", nom, ligne.champ[2], ligne.champ[3], ligne.champ[4], ligne.champ[5], ligne.champ[6], ligne.champ[7], ligne.champ[8]);
}
Je sais que dans mon code il y a des erreurs ce n'est qu'une première version.... soyez indulgent s'il vous plaît.
Merci d'avance
Bonjour,
|
Salut ,
struct ligne ligne,il y a confussion tu declares ligne de type ligne ,lors de la compilation donc faudrait faire struct Ligne ligne. Qui s'est ? size_til faut definir son type. Oh un oubli char *champ[8], je ne pense pas que ce soit juste ,en c un nom de tableau est un pointeur, champ[8] signifie que champ pointe sur un tableau de 8 caracteres et *champ signifi de meme que champ pointe sur une chaine de caracteres mais de taille variable cela irait si tu declares char *champ;et par la suite ligne.champ[i]=c verifie d'abord |