endptr est un pointeur detiné à pointer sur le caractère ayant povoqué l'arrêt du processus de conversion. strtol doit donc pouvoir modifier sa valeur, il faut donc lui passer son adresse.
n = strtol("1234", &endptr, BASE_10);
Si tout se passe bien, endptr doit pointer sur le '\0', autrement dit *endptr == '\0'. Autrement un caractère invalide a été rencontré avant le '\0' et a stoppé le processus de conversion. Ce deuxième argument st facultatif (mais il est recommandé de l'utiliser), on peut mettre tout simplement NULL.
Partager