鱼C论坛

 找回密码
 立即注册
查看: 3607|回复: 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")的警告。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

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

C:\Bin>x
请输入书名:ABCDEF
请输入作者:AAAA
请输入售价:120.5
请输入出版日期:20191109
请输入出版社:DFGHJK
书名:ABCDEF
作者:AAAA
售价:120.50
出版日期:20191109
出版社:DFGHJK

C:\Bin>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

        我这里一切正常无比:

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

      我用 GNU 的编译器,所以,把 scanf_s() 直接改成 scanf() 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

好神奇啊,我重新装一下编译器试试
想知道小甲鱼最近在做啥?请访问 -> 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输入字符串时加上缓冲区长度参数就好了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 18:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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