c - Aliased arguments in strtol -
here how strtol has declared according § 7.22.1.4 c11 (n1570):
#include <stdlib.h> long int strtol (const char *restrict nptr, char **restrict endptr, int base); as far know, restrict keyword means object referenced lvalue *nptr accessed or value straight derived it.
however, lot of programmers, , experienced ones, utilize strtol in next way:
#include <stdlib.h> strtol (p, &p, 10); in case, **endptr == **&p == *p == *nptr, , behavior undefined. right?
no. nil accessed via **endptr in strtol. *endptr, separate object, accessed.
c restrict-qualifier strtol
No comments:
Post a Comment