Erreur de segmentation langage c
Fermé
flavdu44
-
6 mars 2009 à 10:51
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 mars 2009 à 11:54
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 mars 2009 à 11:54
A voir également:
- Erreur de segmentation langage c
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Langage binaire - Guide
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum TV & Vidéo
4 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
6 mars 2009 à 11:21
6 mars 2009 à 11:21
je pense que non, rien ne doit le choquer.
Si tu regarde l'algorithme le gars pense que getchar va mettre la chaine de caractère dans c.
Un exemple typique du gars qui n'a rien compris du tout aux tableaux et à la manière de les employé.
Conseil : revoir le cour.
Si tu regarde l'algorithme le gars pense que getchar va mettre la chaine de caractère dans c.
Un exemple typique du gars qui n'a rien compris du tout aux tableaux et à la manière de les employé.
Conseil : revoir le cour.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
6 mars 2009 à 11:42
6 mars 2009 à 11:42
Il est clair que le programme n'a pas été assez réfléchi avant d'être codé et compiler.
pour neo : la segmentation ne dépend pas de la longueur de la chaîne (strlen) mais de la taille mémoire qui lui a été alloué.
pour neo : la segmentation ne dépend pas de la longueur de la chaîne (strlen) mais de la taille mémoire qui lui a été alloué.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
6 mars 2009 à 11:54
6 mars 2009 à 11:54
@flavdu44 :
int i;
char c[i];
Tu initialises un tableau de char avec un entier non défini.
Tu devrais faire #define MAX 100 (puisque vu ton code ton tableau à une taille de 100) et déclarer ton tableau en
c[i]=getchar();
Même problème, i n'est toujours pas connu. Et getchar(), va te lire un seul caractère et non une chaîne comme tu le souhaiterais. Utilise plutôt scanf ou fgets pour lire une chaîne de caractères.
Pour l'affichage du tableau modifié, un simple puts(c) suffira. Pas besoin d'afficher caractère par caractère.
int i;
char c[i];
Tu initialises un tableau de char avec un entier non défini.
Tu devrais faire #define MAX 100 (puisque vu ton code ton tableau à une taille de 100) et déclarer ton tableau en
char c[MAX];
c[i]=getchar();
Même problème, i n'est toujours pas connu. Et getchar(), va te lire un seul caractère et non une chaîne comme tu le souhaiterais. Utilise plutôt scanf ou fgets pour lire une chaîne de caractères.
Pour l'affichage du tableau modifié, un simple puts(c) suffira. Pas besoin d'afficher caractère par caractère.