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:
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
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] )
dans le dernier cas getParamArrayPtrWithoutVerfiStatic impossible de trouver une moyen de caster mon parametre de type double (*)[3] vers le type 'double *[]'.
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 *[]'")
Il doit bien y avoir une moyen vu que au final les deux types sont des pointeurs sur un tableaux d'élément.
Partager