鱼C论坛

 找回密码
 立即注册
查看: 4039|回复: 5

vs2019提示访问写入位置 0x00007FF619B0D000 时发生访问冲突。

[复制链接]
发表于 2019-11-9 23:18:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>

struct Book
{
        char title[128];   
        char author[40];   
        float price;        
        unsigned int date;  
        char publisher[40];     
}book;
int main(void)
{
        printf("请输入书名:");
        scanf_s("%s",book.title);
        printf("请输入作者:");
        scanf_s("%s", book.author);
        printf("请输入售价:");
        scanf_s("%f", &book.price);
        printf("请输入出版日期:");
        scanf_s("%d", &book.date);
        printf("请输入出版社:");
        scanf_s("%s", book.publisher);

        printf("书名:%s\n",book.title);
        printf("作者:%s\n", book.author);
        printf("售价:%.2f\n", book.price);
        printf("出版日期:%d\n", book.date);
        printf("出版社:%s\n", book.publisher);

        return 0;
}
第14,16,22行有缺少"scanf_s"的整形参数(对应于转换说明符"2")的警告。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-11-9 23:51:25 | 显示全部楼层
本帖最后由 jackz007 于 2019-11-9 23:57 编辑

        程序逻辑本身没有任何问题,这个错误让人非常匪夷所思。

        我这里一切正常无比:
  1. C:\Bin>g++ -o x x.c

  2. C:\Bin>x
  3. 请输入书名:ABCDEF
  4. 请输入作者:AAAA
  5. 请输入售价:120.5
  6. 请输入出版日期:20191109
  7. 请输入出版社:DFGHJK
  8. 书名:ABCDEF
  9. 作者:AAAA
  10. 售价:120.50
  11. 出版日期:20191109
  12. 出版社:DFGHJK

  13. C:\Bin>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-10 10:43:56 | 显示全部楼层
jackz007 发表于 2019-11-9 23:51
程序逻辑本身没有任何问题,这个错误让人非常匪夷所思。

        我这里一切正常无比:

1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-10 12:39:00 | 显示全部楼层

      我用 GNU 的编译器,所以,把 scanf_s() 直接改成 scanf() 了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-10 22:36:52 | 显示全部楼层
jackz007 发表于 2019-11-10 12:39
我用 GNU 的编译器,所以,把 scanf_s() 直接改成 scanf() 了

好神奇啊,我重新装一下编译器试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-11 12:03:44 | 显示全部楼层
#include<stdio.h>

struct Book
{
        char title[128];
        char author[40];
        float price;
        unsigned int date;
        char publisher[40];
}book;

int main(void)
{
        printf("请输入书名:");
        scanf_s("%s", book.title, 128);  //128
        printf("请输入作者:");
        scanf_s("%s", book.author, 40);  //40
        printf("请输入售价:");
        scanf_s("%f", &book.price);
        printf("请输入出版日期:");
        scanf_s("%d", &book.date);
        printf("请输入出版社:");
        scanf_s("%s", book.publisher, 40);  //40

        printf("书名:%s\n", book.title);
        printf("作者:%s\n", book.author);
        printf("售价:%.2f\n", book.price);
        printf("出版日期:%d\n", book.date);
        printf("出版社:%s\n", book.publisher);

        return 0;
}

vs下scanf_s输入字符串时加上缓冲区长度参数就好了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-25 21:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表