Difference entrer v[] et v[5] en c++

Résolu
Bonjour,

c'est koi la difference entre une la fonction
void tri (float v[] , int n )
et la fonction
void tri(float v[5],int n) <=-- es ce que cette fonction est valide? ou c'est la memme chose que la premiere ???

P.S : le langague est le c++

3 réponses

  1. Bonsoir,

    Oui, c'est valide, mais déconseillé comme syntaxe (peut parfois générer un warning).

    Le compilateur n'utilise pas l'information 'taille' que tu lui indique (en l'occurrence ici 5).

    Le code suivant compilera sans erreurs :

    void tri(float v[5],int n)
    {
        // code de tri ...
    }
    
    
    
    float a[10] ;
    float b[2] ;
    
    // initialisations et autres traitements ...
    
    tri(a, 10) ;
    tri(b, 2) ;
    ...
    


    Comme il s'agit d'une fonction de tri, qui prend en paramètre des tableaux de diverses longueurs, la syntaxe la plus propre reste la première :

    void tri (float v[] , int n)
    


    J'espère que c'est un peu plus clair :)
    1
    1. Le plus "clair" et le plus "propre", à mon humble avis, c'est :

      void tri (float v[] , int n)
      1
      1. ooo ok! merci bcp!
        0
    2. donc il est plus conseiller de faire de cette facon? ....merci

      void tri(float v[5],int n)
      0
      1. Contributeur
        Non, cela ne générera pas de warning car c'est standard.
        Le compilateur ignore purement et simplement la dimension pour un tableau une dimension. De même manière tu peux mettre : void tri (float *v, int n) puisque le compilateur transformera ton tableau en un pointeur sur le premier du tableau.
        0