Wegen "0" != Fehler:
char* endp;
char* str = "0";
int value = strtol (str, &endp, 10);
endp zeigt jetzt auf str + 1, ein zeichen umgewandelt. value=0.
char* endp;
char* str = "x";
int value = strtol (str, &endp, 10);
endp zeigt auf str + 0, value = 0.