Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pointeur incorect

Avec des tableau et une focntion

Sujet résolu
    24 novembre 2007 à 0:23:32

    Bonjour,
    Voila un code que j'ai écrit dans le cardre du questionaire de Prologin (j'en profite pour faire de la pub):
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. void algo (char *poeme[], char *a[], char *b[])
    4. {
    5.         unsigned int i = 0;
    6.         unsigned int j = 0;
    7.         while(1)
    8.         {
    9.                 while(1)
    10.                 {
    11.                         if( *poeme[i] == *a[j])
    12.                                 *poeme[i] = *b[j];
    13.                         j++;
    14.                         if( *a[j] == '\0')
    15.                                 break;
    16.                 }
    17.                 i++;
    18.                 if (*poeme[i] == '\0')
    19.                         break;
    20.         }
    21. }
    22. int main(int argc, char *argv[])
    23. {
    24. char p[] = "abc" ;
    25. char d[] = "ac";
    26. char e[] = "de";
    27. algo(p, d, e);
    28. printf("%s\n", e);
    29.   return 0;
    30. }

    Compilé avec gcc il me donne une erreur de ségmentation à l'éxécution.
    A la compilation je voi aparaitre le message suivant.
    clavier.c: In function «main":
    clavier.c:29: attention : passing argument 1 of «algo" from incompatible pointer type
    clavier.c:29: attention : passing argument 2 of «algo" from incompatible pointer type
    clavier.c:29: attention : passing argument 3 of «algo" from incompatible pointer type


    Je ne comprend vraiment pas d'où ça vien pouriez vous m'aider SVP
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2007 à 0:28:44

      Citation : Arak


      Compilé avec gcc il me donne une erreur de ségmentation à l'éxécution.
      A la compilation je voi aparaitre le message suivant.

      clavier.c: In function «main":
      clavier.c:29: attention : passing argument 1 of «algo" from incompatible pointer type
      clavier.c:29: attention : passing argument 2 of «algo" from incompatible pointer type
      clavier.c:29: attention : passing argument 3 of «algo" from incompatible pointer type


      Je ne comprend vraiment pas d'où ça vien pouriez vous m'aider SVP


      Les paramètres de la fonction sont de type pointeur sur pointeur sur char et tu passes des adresses de char. Evidemment, ça ne peut pas fonctionner. Il y a une * (ou une paire de []) en trop dans le prototype :
      1. void algo (char *poeme, char *a, char *b)
      2. <...>

      • Partager sur Facebook
      • Partager sur Twitter
      Music only !
        24 novembre 2007 à 0:51:32

        MERCI !!!!!!!!!!!!!!!!!!!!
        • Partager sur Facebook
        • Partager sur Twitter

        Pointeur incorect

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown