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

Résolu/Fermé
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011 - 3 oct. 2010 à 18:38
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 12 oct. 2010 à 23:15
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++

A voir également:

3 réponses

overcode Messages postés 119 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 21 octobre 2011 27
4 oct. 2010 à 03:51
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
overcode Messages postés 119 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 21 octobre 2011 27
4 oct. 2010 à 05:39
Le plus "clair" et le plus "propre", à mon humble avis, c'est :

void tri (float v[] , int n)
1
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011
4 oct. 2010 à 15:32
ooo ok! merci bcp!
0
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011
4 oct. 2010 à 05:23
donc il est plus conseiller de faire de cette facon? ....merci

void tri(float v[5],int n)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
12 oct. 2010 à 23:15
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