0x7B3D8F41 (ucrtbased.dll)处(位于 Project2.exe 中)引发的异常: 0xC0000005: 写入位置 0x006A1357 时发生访问冲突。

 初学c语言,在学习 用scanf函数输入数据时写了点代码(上图所示),调试过程中未报错,but运行后却出现如上问题,原因如下在于未能正确理解scanf于scanf_s的区别。
scanf_s()用于读取字XIU符串时,必须提供一个数字以表明最多读取多少位字符,以防止溢出。

 在scanf_s中指定最多读取多少位字符后运行成功!

scanf于scanf_s的区别:
scanf() 函数 :
scanf() 函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。 其调用格式为:scanf("<格式化字符串>",<地址表>)。
scanf_s()函数:
scanf_s() 的功能虽然与scanf() 相同,但却比 scanf() 安全,因为 scanf_s() 是针对“ scanf()在读取字符串时不检查边界,可能会造成内存泄露”这个问题设计的。
scanf_s()用于读取字符串时,必须提供一个数字以表明最多读取多少位字符,以防止溢出。

0x7B3D8F41 (ucrtbased.dll)处(位于 Project2.exe 中)引发的异常: 0xC0000005: 写入位置 0x006A1357 时发生访问冲突。最先出现在Python成神之路

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/7280.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>