【C语言】printf函数陷阱

URL被编码/转义之后(转换工具地址:URL在线编码转换工具),原始URL字符串内容被改变了,例如:

&fm=217&app=126&f=JPEG?w=363&h=225&s=9

转为:

%26fm%3D217%26app%3D126%26f%3DJPEG%3Fw%3D363%26h%3D225%26s%3D9

可以发现其中“&s=9”被转成了“%26s%3D9”,注意,“%26s”在printf格式化打印函数看来是一个参数,表示打印一个字符串,一共打印26个字符,不够的补空格。但是实际上这个字符串根本不存在,但是printf函数还是会在可变参数列表里面找一个参数作为要打印的字符串地址,这就是个野指针了,很容易导致死机。

那么非要打印这个编码后的URL地址怎么办呢?反编码回来得了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值