Partage
  • Partager sur Facebook
  • Partager sur Twitter

Une erreur ?

Comment ça se fait ?

    2 janvier 2008 à 18:41:59

    Salut à tous,

    Voici une erreur que je ne comprends pas, une erreur probablement toute bête. Tout d'abord le code :

    1. int inverserTableau(int tableau[], int tailleTableau)
    2. {
    3.         int i,k,l;
    4.         for(i = 0 ; i < tailleTableau ; i++)
    5.         {
    6.                 l = tailleTableau - i;
    7.                 k = tableau[l];
    8.                 tableau[l] = tableau[i];
    9.                 tableau[i] = k;
    10.         }
    11.         return tableau;
    12. }
    13. int main (int argc, const char * argv[])
    14. {
    15.         int tablo[5] = {1,2,3,4,5};
    16.         tablo = inverserTableau(tablo,5);
    17.         afficherTableau(tablo,5);
    18.         return 0;
    19. }


    afficherTableau fonctionne parfaitement, je le sais, aussi n'ai pas mis le code correspondant. Et maintenant l'erreur : à la ligne 20 tablo = inverserTableau(tablo,5); le compilateur me dit : "error : incompatible types in assignment", c'est à dire (c'est facile à traduire) : "types incompatibles dans la tâche (l'appel de la fonction)". Pourquoi donc ? Mon tablo est bien un int, la fonction prends bien un int et renvoie un int o_O ... en quoi les types sont-ils incompatibles o_Oo_O ?



    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2008 à 18:46:02

      inverserTableau renvoit un entier, or tablo est un tableau d'entiers, d'où les types incompatibles indiqués par ton compilateur ;)

      Et int tableau[] dans tes paramèters n'est pas un int mais un tableau d'int!
      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2008 à 22:50:30

        C'est parfaitement clair. Je ne savais pas que le système ferait la différence entre un tableau d'int et un simple int. Que faire dans ce cas ? Renvoyer le pointeur *tablo ?
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2008 à 22:52:20

          Ta fonction n'a pas besoin de renvoyer quelque chose : elle se contente de modifier le tableau.
          Ensuite, pour vérifier que le tableau a bien été inversé, tu utilises ta fonction afficherTableau.
          • Partager sur Facebook
          • Partager sur Twitter

          Une erreur ?

          × 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