所以我为我的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函数时它会崩溃?
答案 0 :(得分:13)
您引用argv
而未检查argc
是否足以允许这些引用。如果argc
仅为1
?
真正的问题是使用%s
来显示单个字符。那需要是%c
。使用%s
将把它视为一个字符指针,它不是,然后你的程序深入未定义的行为。