初始化非NULL指针的值是什么?

时间:2019-01-20 21:28:51

标签: c pointers

如果要在strtol中获取endptr的值,则需要传递非NULL指针。我应该初始化一个临时end指针到什么值,而又不做这种丑陋的事情?

char x = '0';
char *y = &x;
char **end = &y;
long l = strtol (str, end, base);

1 个答案:

答案 0 :(得分:2)

也许是这样的:

char *end;
long l = strtol (str, &end, base);

它是传递的end地址,而不是它的值,所以没有传递NULL

如果endptr不为NULL,则指向停止扫描的字符的指针存储在endptr指向的位置。如果无法执行转换(找不到有效数字或指定了无效的基数),则strSource的值将存储在endptr指向的位置。