c - 有人可以向我解释为什么这段代码给我一个 Seg 错误



有人可以向我解释为什么这段代码会给我一个 seg 错误吗?

char  cmd[MAXSIZE];
char* args[2];
fgets(cmd, MAXSIZE, stdin);
// read_line(cmd);
char* cmdPt = cmd;
printf(cmdPt[0]);

然后当我:

printf("%c", cmdPt[0])

它不会给我的赛格错误。

问题出在printf()语句中。

printf(cmdPt[0]);应该printf(cmdPt);因为printf()第一个参数是const char *format即你应该提供 char 数组基址而不是单个 char。

正确阅读编译器警告,您可以找到自己的解决方案。

预期的"常量字符 * 限制",但参数的类型为"字符">

最好将printf()与格式字符串一起使用。正如注释中所建议的,您应该始终使用标志编译代码-Wall -pedantic-errors它对您有很大帮助。

相关内容

  • 没有找到相关文章

最新更新