Passage de tableaux en parametre de function
Bonjour,
je réalise en ce moment un petit programme de démonstration mettant en avant différent façon d’écrire une fonction permettant de passer un tableau en paramètre.
Voici quelque unes des méthodes que je veux mettre dans ma desmonstration:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
//Par ref
// réalise une verification static sur les tailles à la compilation
void getParamArrayVerifStatic( double (&oarray)[3]);
// pas de verification static sur les tailles à la compilation
void getParamArrayWithoutVerfiStatic( double oarray[3]);
//Par pointeur
// réalise une verification static sur les entrées à la compilation
void getParamArrayPtrVerifStatic( double (*oarray)[3] )
// voici la method posant probléme
void getParamArrayPtrWithoutVerfiStatic( double *oarray[3] ) |
j'essaye ensuite différent type en entrée pour voir les vérifications statiques sur le code.
Code:
1 2 3 4 5 6 7 8
|
//declaration du type a teste
double Array3[3] = {3,4,5};
getParamArrayWithoutVerfiStatic(Array3) //"OK Compil but not Validate by compilation")
getParamArrayVerifStatic( Array3 ); //"OK Compil and Validate by compilation")
getParamArrayPtrVerifStatic( &Array3 ); //"OK Compile but not Validate by compilation")
getParamArrayPtrWithoutVerfiStatic( &Array3 ); //"KO Compile ,cannot convert parameter 1 from 'double (*)[3]' to 'double *[]'") |
dans le dernier cas getParamArrayPtrWithoutVerfiStatic impossible de trouver une moyen de caster mon parametre de type double (*)[3] vers le type 'double *[]'.
Il doit bien y avoir une moyen vu que au final les deux types sont des pointeurs sur un tableaux d'élément.