Bus Error (fonction d'inversement de string)
Fermé
Hyllis
-
6 juil. 2014 à 12:35
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 juil. 2014 à 15:52
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 juil. 2014 à 15:52
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
6 juil. 2014 à 13:19
6 juil. 2014 à 13:19
"Salut" est un pointeur sur une zone en lecture seule.
Tu n'as donc pas le droit de modifier cette zone.
Deux façons, ta fonction strrevx renvoie une nouvelle chaîne ou alors, tu crées un tableau (ou pointeur sur une zone du heap).
Par exemple, essaie pour appeler la fonction :
Cdlt,
Tu n'as donc pas le droit de modifier cette zone.
Deux façons, ta fonction strrevx renvoie une nouvelle chaîne ou alors, tu crées un tableau (ou pointeur sur une zone du heap).
Par exemple, essaie pour appeler la fonction :
char ch[]="Salut"; printf("strrevx(%s) = %s\n",ch, strrevx(ch));
Cdlt,
Merci!
Je me suis du coup aperçu que ma fonction ne fonctionne pas, mais au moins, je ne bosse plus à l'aveugle ; merci !
Je me suis du coup aperçu que ma fonction ne fonctionne pas, mais au moins, je ne bosse plus à l'aveugle ; merci !
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
6 juil. 2014 à 15:52
6 juil. 2014 à 15:52
Je n'ai pas regardé en détail ton code, mais :
while (++i < mid)
{
...
++i;
Tu incrémentes 2 fois i...
Du coup tu ne risques que d'échanger les lettres de rang pair.
while (++i < mid)
{
...
++i;
Tu incrémentes 2 fois i...
Du coup tu ne risques que d'échanger les lettres de rang pair.