【发布时间】:2014-12-29 09:58:38
【问题描述】:
在 C11 规范中,%p 的参数类型必须是void **,以防scanf() 函数,但我不知道如何输入地址并将其存储到void **。
事实上,如果我尝试制作:
void **p;
scanf("%p", p);
我遇到了分段错误。
附: C11规范:
对应的参数应该是指向void的指针
【问题讨论】:
-
我不明白这个
scanf()硬编码地址的实际用例是什么?你有 MC,你知道你需要将值扫描到的实际位置吗?p是一个双指针,它应该指向一个我们在所示代码中看不到的指针。跨度> -
@Gopi,是的,我知道,事实上我不明白为什么标准说要使用双指针!
-
我要求您不要以某种方式更改您的问题,以免之前提交的答案看起来错误。考虑添加额外信息保持原始帖子不变。此外,当提出与特定标准相关的问题时,请使用适当的标签。
标签: c c11 format-specifiers