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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.