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.
*5 en fonction du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :"); }
Ou plutôt une fonction du genre
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :"); }
Merci d'avance.
Partager