value = simple_strtoul(tmp, '\0', 10);
unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base);
unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base);
如果我没有搞错的话,这个endp传得好高档的:-) '\0'被转换为char**的0了,和(tmp, NULL, 10)效果一样,都是不要通过endp设置转换结束的位置,改成(tmp, "\0", 10); 可能会因为试图修改常量字符串而出错。还有""是一个0,"\0"是两个0吧?怪不得python流行,不折腾啊
补充:说错了。
char* p = "123";
*p = '4';
char** p = (char**)"\0";
*p = "123"; 地方也不够放char*的
python流行的有理
char s[] = "123"; *s = '4';
char* endp = NULL; // 0
(tmp, &endp, 10);
(tmp, 0, 10);
--
修改:billybear04 FROM 106.121.168.*
FROM 106.121.168.*