Partage
  • Partager sur Facebook
  • Partager sur Twitter

question tableau

    26 décembre 2005 à 21:58:34

    Bonjour,

    je suis débutant en c,donc je solicite votre bienveillance,

    voilà j'essaye de comprendre les tableau j'ai fais un petit programme, mias voilà je comprend pas que l'on puisse pas définir un tanleau du type int tableau[]; quand on ne connait pas la taille.



    main()
    {

    int note[10];
    int eleves=0;
    int i;
    int j;



    }

    printf(" saisir le nombre d'eleve\n");
    scanf("%d", &eleves);


    // creation du tableau et remplir

    for(i=0; i<10; i++)

    {
    printf(" saisir une note");
    scanf("%d",&note[i] );

    }

    //rafficher tableau

    for(j=0; j<eleves; j++)

    {
    printf("%d",note[j]);


    }





     
     
     
     return 0;
     printf("\n");




    }





    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      26 décembre 2005 à 22:08:08

      Hum c'est joli ce code : pas de #include, pleins d'instructions hors du main... et je ne vois aps trop le rapport entre le code et ta question.

      Tu ne peux pas définir un tableau de taille variable : un tableau c'est comme une suite d'emplacements mémoire, on les déclare avant, et le contenu du tableau est écrit dans le fichier exécutable, comme si c'était pleins de variables. On peut en créer dynamiquement, en choisissant la taille, mais c'est plus compliqué : il faut utiliser des pointeurs et des fonctions pour allouer de la mémoire.

      ;)
      • Partager sur Facebook
      • Partager sur Twitter
        26 décembre 2005 à 22:08:40

        Essaie ça :

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

        main()
        {
           int* note;
           int eleves=0;
           int i;
           int j;
           
           printf(" saisir le nombre d'eleve\n");
           scanf("%d", &eleves);
           
           note = (int*)malloc(eleves * sizeof(int));
           
           for(i=0; i<eleves; i++)
           {
              printf(" saisir une note");
              scanf("%d",&note[i] );
           }

           for(j=0; j<eleves; j++)
           {
              printf("%d",note[j]);
           }

           free(note);

           return 0;
        }


        Tu disais quoi à propos des tableaux ? :p
        • Partager sur Facebook
        • Partager sur Twitter
          26 décembre 2005 à 22:12:32

          bon ben ... grillé quoi :p

          Quand tu déclares une variable, l'ordinateur réserve des emplacements dans la mémoire. Un tableau est une variable vraiment particulière, mais l'ordinateur à tout de même besoin de réserver de la mémoire, donc il faut indiquer sa taille.

          Si tu ne la connais pas à l'avance, il faut réserver la mémoire toi même. C'est ce qu'on appelle l'allocation dynamique de mémoire.

          C'est assez spécial, et cela se fait de manière différente en C et C++. C'est pas facile, surtout qu'il ne faut pas oublier de libérer la mémoire allouée quand tu n'en a plus besoin.

          Si tu veux te renseigner, c'est malloc() et free() en C;
          et new et delete en c++ !

          Bonne prog !
          • Partager sur Facebook
          • Partager sur Twitter
            26 décembre 2005 à 22:53:39

            en effet, il faut que je regarde ça de pret car cela ma l'air balaise ton truc.
            • Partager sur Facebook
            • Partager sur Twitter

            question tableau

            × 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