【发布时间】:2015-12-02 20:49:11
【问题描述】:
我正在尝试通过 scanf 输入 2 个数字,但 scanf 会引发分段错误。
void add_prog_1(char *host){
CLIENT *clnt;
int *result_1;
intpair add_1_arg;
int x;
int y;
clnt = clnt_create (host, ADD_PROG, ADD_VERS, "udp");
if (clnt == NULL) {
clnt_pcreateerror (host);
exit (1);
} else {
printf("Connection Established Successfully");
scanf("%d %d",&x ,&y);
printf("Input Successfully");
add_1_arg.a = x;
add_1_arg.a = y;
}
程序的输出是
Connection Established Successfully
4 4
Segmentation fault (core dumped)
请帮忙!!
【问题讨论】:
-
您的 scanf 调用看起来不错。您确定是
scanf()调用给出了段错误而不是代码的其他部分吗? -
请使用调试器解决此类问题。如果没有一个最小的完整示例,我们无法在这里为您提供帮助。
-
@BlueMoon 我猜上面代码的输出是
Connection Established Successfully 4 4 Segmentation fault (core dumped)4 4 是给定的输入 -
看看here。
-
@Michi 给定程序使用的命令行参数不是从控制台输入的。
标签: c segmentation-fault scanf