Une même fonction pour plusieurs types de variables
Bonjour,
J'ai crée des types qui sont en fait de type int
- t_carre
- t_domino
- t_triomino
- t_tetramino
- t_pentamino
Je voudrais savoir s'il est possible de faire une unique fonction qui permettrait de reconnaitre le type et de faire l'allocation au lieu de faire 5 fois la même fonction parce que le type n'est pas le même.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| t_carre *CreerCarre()
{
t_carre *carre = (t_carre*)malloc( sizeof(t_carre) );
carre->x = (int *)malloc( 10*sizeof(int) );
carre->y = (int *)malloc( 10*sizeof(int) );
if ( carre != NULL && carre->x != NULL && carre-> != NULL )
{
return carre;
}
else perror("\n\n CreerCarre :");
} |
*5 en fonction du type
Ou plutôt une fonction du genre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| void *CreerPiece( ??? )
{
type *piece = (type*)malloc( sizeof(type) );
piece->x = (int *)malloc( 10*sizeof(int) );
piece->y = (int *)malloc( 10*sizeof(int) );
if ( piece != NULL && piece->x != NULL && piece-> != NULL )
{
return piece;
}
else perror("\n\n CreerPiece :");
} |
J'ai pensé dire que : 1 correspond a t_carre, 2 à t_domino... On passe ces valeur en argument puis faire un switch pour faire l'allocation correspondant mais ç'est plus un artifice qu'autre chose. Je cherche un autre moyen qui reconnait le type passé et qui fait l'alloc en conséquence.
Merci d'avance.