« Programmation C/Erreurs » : différence entre les versions
Contenu supprimé Contenu ajouté
Ligne 22 :
== Exemple ==
Pour illustrer cela, voici un exemple, qui tente de convertir une chaine de caractères en un nombre. Le nombre donné, 2<sup>64</sup>, peut ne pas être dans le domaine de valeur du type '''unsigned long''' (qui peut se limiter à 2<sup>32</sup> - 1), suivant l'
<pre>
Ligne 28 :
#include <stdlib.h> /* strtoul() */
#include <limits.h> /* ULONG_MAX */
#include <
#include <errno.h> /* errno */
void teste(const char *nombre)
Ligne 37 ⟶ 38 :
{
/* il y a eu une erreur ! */
printf("Impossible de convertir le nombre '%s': %s.\n", nombre, strerror(errno));
}
else
{
printf("La conversion a
}
}
Ligne 66 ⟶ 58 :
ULONG_MAX vaut 4294967295l.
La conversion a ete effectuee, et la valeur est: 256
Impossible de convertir le nombre '18446744073709551616': la valeur est en dehors de l'intervalle du type spécifié.
Il est nécessaire de placer '''errno''' à 0 ''avant'' d'utiliser '''strtoul''', car les fonctions de la bibliothèque standard ne sont pas obligées de la mettre à zéro en cas de succès.
== Erreurs possibles ==
|