当我尝试打印char指针时,为什么我的程序崩溃了

时间:2018-03-14 16:47:17

标签: c

所以我为我的C类创建了这个程序,它可以创建一个函数来告诉你字符串中某个数字位置的字符。

name charAt string 3

当我编译它时,使用

在命令行中运行它时没有显示错误
printf( "%s", charAt( argv[2], pos) );

它崩溃了

id    brand      date  
 1    audi       ....
 2    toyota     .....
 3    toyota     ....
 4    audi       ....
 5    audi       .....
那条线 为什么当我将char指针传递给printf函数时它会崩溃?

1 个答案:

答案 0 :(得分:13)

您引用argv而未检查argc是否足以允许这些引用。如果argc仅为1

,该怎么办?

真正的问题是使用%s来显示单个字符。那需要是%c。使用%s将把它视为一个字符指针,它不是,然后你的程序深入未定义的行为