在 C11 规范中说 %p
的参数类型在 scanf()
函数的情况下必须是 void **
但我不知道如何输入地址并将其存储到 void **
中。
事实上,如果我尝试制作:
void **p;
scanf("%p", p);
我遇到了段错误。
附言 C11规范:
The corresponding argument shall be a pointer to a pointer to void
最佳答案
void **p;
scanf("%p", p);
因为同样的原因不起作用
int *i;
scanf("%i", i);
不起作用 - 您正在写入一个未初始化的指针(或至少告诉 scanf
写入一个指针)。
这个有效:
int i;
scanf("%i", &i);
还有这个:
void *p;
scanf("%p", &p);
关于c - scanf 和 p 转换说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27686682/