Ben c'est assez clair: à la gestion d'erreur près,
1) Si monData->prime est pas alloué.Tu fais:
monData->prime = BN_bin2bn(...,...,NULL); // allocation avec BN_bin2bn
2) Si monData->prime est alloué, avec suffisamment d'espace mémoire. Tu fais:
BN_bin2bn(..., ..., monData->prime); // réutilisation par BN_bin2bn de l'espace déja alloué
3) Si monData->prime est alloué, mais avec pas suffisamment d'espace mémoire (si ce cas peut arriver, je ne connais pas tes structures de données pour le savoir). Tu fais:
free(monData->prime); // libération de l'espace alloué trop petit
monData->prime = BN_bin2bn(...,...,NULL); // allocation avec BN_bin2bn
A+,
---------------
There's more than what can be linked! -- Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- No jab ? No job ! -- (╯°□°)╯︵ ┻━┻