各位大侠帮我看看几个指针类型
case 'a':
if (--argc <= 0)
usage ();
addr = strtoul (*++argv, (char **)&ptr, 16); // strtoul (将字符串转换成无符号长整型数) ????????
if (*ptr) {
fprintf (stderr,
"%s: invalid load address %s\n",
cmdname, *argv);
exit (EXIT_FAILURE)
这是我程序的一部分请问
(1)addr = strtoul (*++argv, (char **)&ptr, 16);其中“(char **)&ptr”是什么意思啊。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
本帖最后由 maixl 于 2011-05-17 08:58 编辑
用男人看下就知道了man strtoul
If endptr is not NULL, strtoul() stores the address of the first
invalid character in *endptr. If there were no digits at all, str-
toul() stores the original value of nptr in *endptr (and returns 0).
In particular, if *nptr is not `\0' but **endptr is `\0' on return, the
entire string is valid.
意思是在开始运算后,遇到第一个不符合的字符返回同时,把当前指针位置赋给endptr,
比如strtoul(sd12345efg, &ptr, 0),返回12345,同时ptr指向efg