0x7A09E689 (ucrtbased.dll)处(位于 TalkBack.exe 中)引发的异常: 0xC0000005: 写入位置 0x01100000 时发生访问冲突。
对于上述问题的解决办法:
在用scanf_s()读取字符串的时候需要添加一个读取的字符长长度的参数,即需要将scanf_s("%s",a)
改为scanf_s("%s",a,sizeof(a))
在学习C语言时,对于输入函数来讲书上一直在用scanf(),但是VS编译器在都会提示我改成scanf_s(),说是更安全,由于我刚处于入门阶段,一开始只是在读取整数的输入,直到有一天我遇到了这个错误,这是我在第一次尝试读取字符串的狮虎遇到的,那么为啥会出现这个错误呢,我决定还是再详细的看一下scanf_s()这个函数吧。
以下内容参考与:C语言scanf_s()函数的用法
scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数,从vc++2005开始,VS系统提供了scanf_s()。在调用该函数时,必须提供一个数字以表明最多读取多少位字符。另外,很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。简单的理解,就是scanf_s会比scanf更安全,那么为了安全也需要编程者多传一些参数,这些参数就是变量的长度(占用的字节数)。
对于整数和浮点数而言,和scanf()函数用法相同
float x ;int y;scanf_s("%f %d", &x,&y);
对于基本的字符类型,也无需提供大小参数
char z;scanf_s("%c", &z);
在读取字符串的时候必须要提供一个要读取的字符串的大小
char z[30];scanf_s("%s", z,5);printf("\n%s", z);
比方说我定义了一个30长度的字符数组,但是在读取的时候只给了一个5的长度,那么他最多只能读取4个字符,因为第五位要存放“\0”
,为了不浪费内存空间,第二个参数最好使用sizeof()
。
char z[30];scanf_s("%s", z,sizeof(z));printf("\n%s", z);
总结:在使用scanf_s()读取字符串的时候必须提供一个数字以表明最多读取多少位字符。即scanf_s("%s", 字符串, 字符串长度)
0x7A09E689 (ucrtbased.dll)处(位于 TalkBack.exe 中)引发的异常: 0xC0000005: 写入位置 0x01100000 时发生访问冲突。相关推荐
- 0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00740000 时发生访问冲突。
0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00740000 时发生访问冲突. 参考文章: (1)0x0F19 ...
- 0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00740000 时发生访问冲突。...
下面的代码在编译,运行时没有问题,在输入内容是出现异常如下: 0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00 ...
- 0x00007FFF77912079 (ucrtbased.dll)处(位于 Demo.exe 中)引发的异常: 0xC0000005: 写入位置 0x000000108FD40000 时发生访问冲突
VS中"This function or variable may be unsafe."警告的解决办法 Visual2019的scanf变成scanf_s 然后我就在scanf_ ...
- vs中遇见> 0x7BA4EF8C (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 写入位置 0x00540000 时发生访问冲突。
0x7BA4EF8C (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 写入位置 0x00540000 时发生访问冲突. 在VS2019版中写 ...
- (xxx.dll)处(位于xxx.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000003F 时发生访问冲突。已解决。
下面两个这种类型的报错都一样.(跟xxx.dll和xxx.exe都没关系) 0x794CECC1 (Qt5Cored.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位 ...
- 0x774B9E37 (KernelBase.dll)处(位于 LogonServer.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突解决
网狐大联盟核心服务数据解锁函数访问冲突,报错: 0x774B9E37 (KernelBase.dll)处(位于 LogonServer.exe 中)引发的异常: 0xC0000005: 读取位置 0x ...
- 0x5085170C (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000001A 时发生访问冲突。
此处为非"%s" 类型数据以"%s"类型打印错误. #include <stdlib.h> #include <stdio.h> #if ...
- 0x00007FFA837F2487 (ucrtbased.dll)处(位于 指针.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000068 时发生访问冲突
大佬们 运行完就是这样了,这个该怎么办呀.
- 0x00007FFD977C04A8 (Qt5Sqld.dll)处(位于 a.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突
今天在修改别人代码的时候出现了一个问题: 我想要在子线程中使用 QSqlDatabase::addDatabase("QMYSQL"); 但是,怎么都运行不过去. 我调试,想找出问 ...
最新文章
- c语言 可变参数的宏,可变参数的宏__ VA_ARGS__的用法
- FutureTask中Treiber堆的实现
- plsq如何快捷整理代码_PLSQL Developer使用技巧整理(转)
- tkinter 笔记: radiobutton 选择按钮(莫烦python笔记)
- Android获取SDK的版本信息
- mongo 时间格式化 查询_MongoDB中查询转换(将时间戳转变通用日期格式)
- Spring Boot 上传文件(spring boot upload file)
- 10个CSS和jQuery的加载中(loading)动画效果实现
- OpenCV级联分类器Cascade Classifier
- Python基础班---第一部分(基础)---Python基础知识---第一个Python程序
- 小米5s升级Android8,小米5s、小米5s Plus升级8.0提前,好消息!
- 15优秀免费JQuery 图片 滑动效果
- 高等数学(第七版)同济大学 习题4-5 个人解答
- 什么是工序分析法?工序分析的方法和实施步骤有哪些
- 5G网络切片安全隔离机制与应用
- 防封链接,无投诉按钮链接,地推链接制作,活动链接制作,防封无投诉按钮链接制作方法。
- 唐老师讲运算放大器(第五讲)——运放的应用
- 金三银四马上到了,找工作需要准备什么?
- mac 部署nexus私服库
- 2022.8.11今天回顾了以前c语言的理论知识,我们回顾了计算机的基本结构,存储器的内存组成,数据类型。分享给大家。