scanf_s的用法

int main()
{
	int a;
	char l1[10];
	scanf_s("%s", l1);
	printf("%s", l1);
	return 0;
}

上边的简单代码竟然报错,查询了以后发现是scanf_s函数少加了一个检查边界的参数,改为下图

int main()
{
	int a;
	char l1[10];
	scanf_s("%s", l1,sizeof(l1));
	printf("%s", l1);
	return 0;
}

后面我对这个参数产生了兴趣,如果这个参数改为大于这个数组或者小于这个数组会不会发生问题呢

首先改成20,使其大于原数组,输入15个a,没有报错。

然后将参数改为5,输入大于5的数量a,出现如下结果,可以发现赋值失败,总结要想赋值成功输入的参数数量必须小于等于scanf_s的第三个参数大小

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值