Fonction assert?

Résolu/Fermé
steflemaister Messages postés 19 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 27 décembre 2008 - 31 août 2008 à 11:50
 java4ever - 31 août 2008 à 12:16
Bonjour,

Je me demandais à quoi sert exactement la fonction assert, j ai peur de ne pas comprendre!
Ici je crée une liste vite avec un retour de son adresse:

LISTE *pliste;

pliste=(LISTE) * malloc(sizeof(LISTE);

assert(pliste);

(*pliste).pdebut=NULL;
(¨pliste).pfin=NULL;
return pliste;

merci

1 réponse

Bonjour,

assert(expression logique) en C sert à vérifier une assertion, et si l'expression passée en paramètre est fausse, déclenche une exception et affiche un messge d'erreur. Si l'exception n'est pas capturée, il y a sortie du programe.

Tu peux facilement vérifier ce que ça fait en faisant dans ton code (juste pour voir, après tu l'enlève!)

assert(pListe != 0)
En principe, assert ne fait rien si on est pas en mode DEBUG (NDEBUG = 0)

assert est surtout à utiliser en phase de mise au point d'un programme. Ceci dit, ce n'est pas forcément gênant de le laisser dans les versions de production, puisqu'il ne fait rien si NDEBUG = 0, ce qui est le cas pour les versions de production.
23