Générateur de lancés de dés

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 195 fois - Téléchargée 35 fois

Contenu du snippet

Aucune description n'est fournie pour ce projet

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
4 février 2003

Merci beaucoup à trinitracs et kaid pour leurs suggestions et leur aide.
Je laisse le code en état pour que d'autre puisse bénéficier de leurs commentaires.
J'ai cependant reécrit ce code avec la solution de kaid et cela fonctionne très bien et c effectivement plus optimisé.

Portez vous bien

Dragoon
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
kaid << "trinitacs, bonne explication sur les pointeurs de fonctions."
Merci :)

Je suis d'accord que s'est stupide d'utiliser un tableau de pointeurs de fonctions ici.

kaid << "Conclusion, ma méthode est la plus optimisée et la plus simple :)"
Et il me nargues en plus :p
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

trinitacs, bonne explication sur les pointeurs de fonctions.

Le problème c'est que cette méthode n'est pas utilisable ici. Dans les autres sources on nous avons dissertés tous les deux sur l'utilisation ou non des pointeurs de fonctions, ils s'agissaient de switch() contenant des fonctions différentes et sans paramètres à chaque cas.

Or ici la fonction appelée est toujours la même, seul le paramètre change. Donc ton tableau de pointeurs de fonctions ne contiendra que 7 fois la même fonction et tu seras toujours obligé de faire l'association entre la valeur contenue dans le case et le paramètre de la fonction (certainement avec un tableau comme je l'ai fait).

Conclusion, ma méthode est la plus optimisée et la plus simple :)
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
j'ai oublié de précisé mais il faut vérifier si on ne sort pas du tableau avant l'appel, sinon, couic, hic, aie, pfff, boum.
Enfin l'os est là pour prévenir sur la plupart des segmentation fault, heureusement, ouf :)
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
kaid >> ;)

Je vais expliquer les pointeurs de fonctions dans un tableau. Pour éviter les déclaration trop hard (genre une fonction qui renvoie un pointeur de fonction) on va dire que chaque fonction ne prennent aucun argument et ne renvoie rien.
donc un prototype d'une fonction pouvant être pointé par le pointeur ressemblera à ça:
void nom();
et la déclaration du tableau de pointeur:
void ( *ptr[ 10 ] )() = { fonction1, fonction2, ... fonction9 };
le tableau de pointeurs a une longueur de 10 et il est initialisé en même temps que sa déclaration en écrivant juste le nom de chaque fonction.
Donc le [ 0 ] du tableau pointe sur fonction1, le [ 1 ] du tableau pointe sur fonction2 etc...
Ensuite tu appelle juste le pointeur et ça eppellera la fonction.
( *ptr[ numero ] )();

Il faut aussi savoir que l'utilisation des parenthèses est obligatoire dans la déclaration, sinon le sens change complètement.

On peut aller beaucoup plus loin avec les pointeurs de fonction mais c'est long de tout décrire.

voilà et vive les pointeurs de fonctions, hein kaid :)
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.