栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

为什么vs中使用scanf会报错

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么vs中使用scanf会报错

 我们来看一下报错的提示:

咳咳,是不是字太小了


我们将主要部分放大一些

这句英文的意思大概是,这个函数或者这个变量可能不安全,可以考虑使用scanf_s来代替,如果想继续使用,在前面加上_CRT_SECURE_NO_WARNINGS 

所以我们在使用scanf的时候就会在最前面加上下面这串代码

#define _CRT_SECURE_NO_WARNINGS 

但是我们有没有想过为什么scanf这个函数不安全呢?

我们来看下面一串代码

#include
int main()
{
	
    char arr[3] = { 0 };
	scanf("%s",arr);
	return 0;
}

 
当我们输入abcd的时候,程序出现了异常

这是由于scanf接收字符串的时候没有根据数组大小来接收而是全部接收了,使得数组出现了越界访问,使得程序异常

正是如此,所以vs认定scanf的使用不安全

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号