scanf 行为不正常
scanf not behaving properly
我正在尝试通过 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)
请帮忙!!
您的问题很可能出在其他地方。
我怀疑第二个 printf
的输出没有刷新到终端,程序一直运行,直到你稍后在调用函数的某个地方崩溃。
这样修改函数并重新测试:
printf("Connection Established Successfully\n");
scanf("%d %d",&x ,&y);
printf("Input Successfully\n");
fflush(stdout);
add_1_arg.a = x;
add_1_arg.a = y;
您应该学习使用调试器,例如 gdb
:当程序遇到分段错误时,OS 会转储一个名为 core
的文件,您可以使用调试器加载该文件.它包含准确指出故障发生时间的所有信息。
我正在尝试通过 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)
请帮忙!!
您的问题很可能出在其他地方。
我怀疑第二个 printf
的输出没有刷新到终端,程序一直运行,直到你稍后在调用函数的某个地方崩溃。
这样修改函数并重新测试:
printf("Connection Established Successfully\n");
scanf("%d %d",&x ,&y);
printf("Input Successfully\n");
fflush(stdout);
add_1_arg.a = x;
add_1_arg.a = y;
您应该学习使用调试器,例如 gdb
:当程序遇到分段错误时,OS 会转储一个名为 core
的文件,您可以使用调试器加载该文件.它包含准确指出故障发生时间的所有信息。