Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction pour copier des tableaux

Sujet résolu
    21 août 2006 à 14:36:13

    Bonjour à tous et félicitations pour lesiteduzero,

    bien qu'inscrit depuis peu, grâce à la façon d'expliquer les choses je suis deja aux tableaux.
    Je n'arrive cependant pas à écrire une fonction qui copie un tableau dans un autre. ( exercice )
    j'ai écrit ce code, et bien que le compilateur ne me signale aucune erreur, ca ne va pas :




    #include <stdio.h>
    #include <stdlib.h>
    long copieTableau ( long tableau[], long nouveauTableau[] ,long tailleTableau);
    int main()
    {
    printf ("salit les gars !\n");
    long tableau[8] = {1,25,4,5,88,2,6,7}, nouveauTableau[8] , i = 0;
    for ( i=0 ; i<8 ; i++)
    {
    printf ("%ld\n", tableau[i]);
    }
    printf ("voici la copie du tableau %ld\n", copieTableau(tableau, nouveauTableau, 8));
    return 0;
    }
    long copieTableau ( long tableau[], long nouveauTableau[] ,long tailleTableau)
    {
    long i = 0;
    for ( i = 0 ; i < tailleTableau ; i++)
    {
    nouveauTableau[8] = tableau[i];
    return nouveauTableau[8];
    }

    }


    merci
    • Partager sur Facebook
    • Partager sur Twitter
      21 août 2006 à 14:53:52

      [Edit] Induit en erreur par les tiennes je corrige ! Ton type de fonction doit être void, la fonction ne renvoie rien !

      /*copier tableau*/

      #include <stdlib.h>
      #include <stdio.h>

      void copyTab (long *tab1, long *tab2, long lenTab);

      int main (int argc, char **argv)
      {
          long truc[8] = {1, 5, 89, 46, 47, 52, 156, 7}, machin[8] = {0};
          long i = 0;
          copyTab (truc, machin, 8);
         
          for (i = 0 ; i < 8 ; i++)
          {
              printf ("Tab1, indice %ld : %ld\n", i, truc[i]);
              printf ("Tab2, indice %ld : %ld\n\n", i, machin[i]);
          }
         
          getchar ();
         
          return EXIT_SUCCESS;
      }

      void copyTab (long *tab1, long *tab2, long lenTab)
      {
          long i = 0;
         
          for (i = 0 ; i < lenTab ; i++)
          {
              tab2[i] = tab1[i];
          }
      }
      • Partager sur Facebook
      • Partager sur Twitter
        21 août 2006 à 15:30:38

        Salut !

        En fait, tu as une fonction déjà fait pour ça : memcpy.
        Mais, si tu veux quand même utiliser ta propre fonction, celle donné par pierre fonctionne. Elle n'a qu'un seul inconvénient, c'est de ne fonctionner que pour les long, alors que memcpy fonctionne pour tout les types de variables et même les structures


        #include <stdlib.h>
        #include <stdio.h>


        int main (int argc, char **argv)
        {
            long truc[8] = {1, 5, 89, 46, 47, 52, 156, 7}, machin[8] = {0};
            long i = 0;
            //memcpy, fonction faite exprès pour !
            memcpy(truc, machin, sizeof(machin));
           
            for (i = 0 ; i < 8 ; i++)
            {
                printf ("Tab1, indice %ld : %ld\n", i, truc[i]);
                printf ("Tab2, indice %ld : %ld\n\n", i, machin[i]);
            }
           
            getchar ();
           
            return EXIT_SUCCESS;
        }
        • Partager sur Facebook
        • Partager sur Twitter

        fonction pour copier des tableaux

        × 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