如果要在strtol
中获取endptr
的值,则需要传递非NULL指针。我应该初始化一个临时end
指针到什么值,而又不做这种丑陋的事情?
char x = '0';
char *y = &x;
char **end = &y;
long l = strtol (str, end, base);
答案 0 :(得分:2)
也许是这样的:
char *end;
long l = strtol (str, &end, base);
它是传递的end
的地址,而不是它的值,所以没有传递NULL
。
如果endptr不为NULL,则指向停止扫描的字符的指针存储在endptr指向的位置。如果无法执行转换(找不到有效数字或指定了无效的基数),则strSource的值将存储在endptr指向的位置。