Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme fonction initailisation matrice

Anonyme
    24 novembre 2007 à 1:19:04

    Bonjour j'ai un erreur de compilation que je ne comprend pas bien voilà le code :

    void init_mat(int mat[][],int l,int c,int p)
    {
    int i,i_1; /* variables de boucle */

    for(i = 0;i != l;i++)
    {
    for(i_1 = 1;i_1 != c;i_1++)
    {
    p = mat[i][i_1];
    }
    }
    }

    A la compilation j'ai l'erreur suivant invalid use of array with unspecified bounds

    merci d'avance
    </liste>
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2007 à 2:04:57

      Salut' !
      Prend l'habitude de présenter ton code avec la balise <code />, c'est dans les règles du forum et ô combien plus agréable ^^ :
      1. void init_mat(int mat[][],int l,int c,int p)
      2. {
      3.    int i,i_1; /* variables de boucle */
      4.    for(i = 0;i != l;i++)
      5.    {
      6.       for(i_1 = 1;i_1 != c;i_1++)
      7.       {
      8.          p = mat[i][i_1];
      9.       }
      10.    }
      11. }

      Pour ton problème : il faut que tu spécifies la taille de la dernière dimension dans le prototpye de la fonction. Exemple :
      1. void init_mat(int mat[][5],int l,int c,int p)


      Question : P il sert à quoi ?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        24 novembre 2007 à 2:09:37

        Oui excuse moi pour la presentation sinon p c'est un des parametre rentré dans la fonction on initialise la matrice avec cette valeur.Quasi tout le temps 0 en faite, mais bon.

        Sinon pour ta reponse, un grand merci, c'est la deuxieme fois deja que j'ai la chance de trouver de l'aide meme à une heure tardive.

        Merci beaucoup
        • Partager sur Facebook
        • Partager sur Twitter
          24 novembre 2007 à 2:20:15

          Citation :

          p c'est un des parametre rentré dans la fonction on initialise la matrice avec cette valeur.Quasi tout le temps 0 en faite, mais bon.


          Dans ce cas là ton affectation est à l'envers, ce ne sera pas :
          1. p = mat[i][i_1];

          mais
          1. mat[i][i_1] = p;

          Bon courage pour la suite ;)
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            24 novembre 2007 à 2:22:08

            je sais, je l'ai vu j'ai inversé depuis que j'ai posté le message.

            Merci pour ta disponibilté
            • Partager sur Facebook
            • Partager sur Twitter
              24 novembre 2007 à 9:29:17

              l'erreur dans ton code est que lorsque tu déclare un fonction qui prend en paramètre une matrice il faut spécifier la deuxieme dimension .
              Par exemple
              1. void init_mat(int mat[][100],int l,int c,int p)

              ou encore
              1. void init_mat(int mat[][NB_COLONE],int l,int c,int p)

              avec NB_COLONE une constante.
              • Partager sur Facebook
              • Partager sur Twitter

              probleme fonction initailisation matrice

              × 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