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

在VS2019版中写了一个很简单的冒泡算法,结果出现错误:

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

#include<stdio.h>
struct student
{char name[20];int score;
};
int main()
{int i, j, n;struct student a[100], t;scanf_s("%d", &n);for (i = 1;i <= n;i++){scanf_s("%s %d", &a[i].name, &a[i].score);}//排序for (i = 1;i <= n - 1;i++){for (j = 1;j <= n - i;j++){if (a[j].score < a[j + 1].score){t = a[j];a[j] = a[j + 1];a[j + 1] = t;}}}for (i = 1;i <= n;i++){printf("%s\n", a[i].name);}return 0;
}

这是因为在使用VS2019时,编译器选择用scanf_s,代替scanf。而二者的定义并不一样。往往习惯于scanf的使用规则,所以在写入字符串或者数组的时候就会被坑。如上述所示,编译器不会报错,但是在进入第二次循环后,调试过程会出现异常。原因是:scanf_s在使用数组指针作为写入变量地址参数时,还需要加一个buffer长度参数,更安全。改正如下所示:

#include<stdio.h>
struct student
{char name[20];int score;
};
int main()
{int i, j, n;struct student a[100], t;scanf_s("%d", &n);for (i = 1;i <= n;i++){scanf_s("%s %d", &a[i].name,20,&a[i].score);}//排序for (i = 1;i <= n - 1;i++){for (j = 1;j <= n - i;j++){if (a[j].score < a[j + 1].score){t = a[j];a[j] = a[j + 1];a[j + 1] = t;}}}for (i = 1;i <= n;i++){printf("%s\n", a[i].name);}return 0;
}

vs中遇见> 0x7BA4EF8C (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 写入位置 0x00540000 时发生访问冲突。相关推荐

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

    0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00740000 时发生访问冲突. 参考文章: (1)0x0F19 ...

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

    下面的代码在编译,运行时没有问题,在输入内容是出现异常如下: 0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00 ...

  3. 0x00007FFF77912079 (ucrtbased.dll)处(位于 Demo.exe 中)引发的异常: 0xC0000005: 写入位置 0x000000108FD40000 时发生访问冲突

    VS中"This function or variable may be unsafe."警告的解决办法 Visual2019的scanf变成scanf_s 然后我就在scanf_ ...

  4. 0x0FDFE224 (ucrtbased.dll)处(位于.exe 中)引发的异常: 0xC0000005: 写入位置 0x01100000 时发生访问冲突。 如有适用于此异常的处

    今天在学习<明解C语言>时编译书上的历程发现一直报错 0x0FE9E224 (ucrtbased.dll)处(位于.exe 中)引发的异常: 0xC0000005: 写入位置 0x0070 ...

  5. 0x00007FF8EDA19A9D (ntdll.dll)处引发的异常: 0xC0000005: 写入位置 0x00000000CED889F8 时发生访问冲突

    0x00007FF8EDA19A9D (ntdll.dll)处引发的异常: 0xC0000005: 写入位置 0x00000000CED889F8 时发生访问冲突 这个错误代码: EnterCriti ...

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

    对于上述问题的解决办法: 在用scanf_s()读取字符串的时候需要添加一个读取的字符长长度的参数,即需要将scanf_s("%s",a)改为scanf_s("%s&qu ...

  7. 0x00007FF9A7F72079 (ucrtbased.dll)处引发的异常: 0xC0000005: 写入位置 0x000000094D100000 时发生访问冲突

    此类型错误,需要更改为 其temp中name数组的长度,在scanf_s中需要添加,在scanf中不需要.

  8. (xxx.dll)处(位于xxx.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000003F 时发生访问冲突。已解决。

    下面两个这种类型的报错都一样.(跟xxx.dll和xxx.exe都没关系) 0x794CECC1 (Qt5Cored.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位 ...

  9. 0x774B9E37 (KernelBase.dll)处(位于 LogonServer.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突解决

    网狐大联盟核心服务数据解锁函数访问冲突,报错: 0x774B9E37 (KernelBase.dll)处(位于 LogonServer.exe 中)引发的异常: 0xC0000005: 读取位置 0x ...

最新文章

  1. 8个必备的PHP功能开发
  2. 万字长文,说透了 Openshift4 的安装过程!
  3. 【Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )
  4. GF(2^8)上的多项式乘法(Matlab实现)
  5. java实现对properties类型文件的读写
  6. JavaScript(js)概述和使用
  7. python控制ppt定时_python中使用requests实现自动回帖.ppt
  8. 数亿下载量的npm包被“投毒”,前端开源将如何?
  9. CentOS7安装Zabbix3.0
  10. java改变人物动作_Java创建对象的动作分析
  11. 非极大值抑制(Non-Maximum Suppression)
  12. inline-block从入门到精通
  13. 微信小程序开发流程、开发者工具下载安装
  14. 域名指向变更后,域名依旧指向老IP问题
  15. EChart配置--基准线(坐标轴指示器axisPointer)的配置
  16. 在CMD中输入adb命令,提示“‘adb‘ 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法
  17. 视频转换成gif动图的方法步骤
  18. tensorflow报No OpKernel was registered to support Op ‘NcclAllReduce‘
  19. 博智云书 | 建筑工程文档管理好帮手
  20. Composer加速镜像,一些小技巧

热门文章

  1. python获取cpu温度_获取树莓派的CPU和GPU温度(Python)
  2. D3D HOOK实现透视讲解
  3. impala+hue
  4. 记 insert overwrite
  5. TransparentBlt、StretchBlt与BitBlt三个函数的区别
  6. python与数据挖掘课后实验答案_中国大学数据挖掘与python实践课后习题答案
  7. spring boot集成redis和mongodb实现计步排名
  8. Linux 进程管理之四大名捕
  9. Scripting.FileSystemObject对象
  10. June 17(th)