24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3047  |  回复: 15

王国梁

铜虫 (初入文坛)

[求助] 新人,刚爱C语言,编译器是VS2017,求助

CODE:
#include<stdio.h>
#define PRAISE "You are an extraordinary being."
int main(void)
{
        char name[40];

        printf("What's your name?");
        scanf_s("%s", name);
        printf("Hello.%s. %s\n", name, PRAISE);

        getchar();
        return 0;
}

0xFEFEFEFE 处有未经处理的异常(在 Project2.exe 中): 0xC00001A5: 检测到无效的异常处理程序例程。 (参数: 0x00000003)。
0x0FA8B7EC (ucrtbased.dll)处(位于 Project2.exe 中)引发的异常: 0xC0000005: 写入位置 0x00990000 时发生访问冲突。
对路径“d:\应用程序\project2\debug\project2.exe”的访问被拒绝。

scanf_s没有为格式字符串提供足够的参数
各位朋友,能帮我一下吗,编译器是VS2017;
这段错误是什么意思?

[ Last edited by jjdg on 2018-7-8 at 12:10 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

cmfire

木虫 (正式写手)

我们用户交互都写的: scanf("%s",&name);

发自小木虫Android客户端
2楼2018-07-07 14:36:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

王国梁

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by cmfire at 2018-07-07 14:36:44
我们用户交互都写的: scanf(&quot;%s&quot;,&amp;name);

不行的,新版的VS2017输入函数都是这样写的,scanf_s
3楼2018-07-07 14:39:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucifov

木虫 (正式写手)

好久没用过c了,不过你的数组没有分配内存

发自小木虫IOS客户端
4楼2018-07-07 21:53:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sspa9999

至尊木虫 (著名写手)

char name[64]; if (scanf_s("%s", name, sizeof(name)) == 1) printf("Your name is %s\n", name);

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

5楼2018-07-08 00:16:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

王国梁

铜虫 (初入文坛)

送红花一朵
引用回帖:
5楼: Originally posted by sspa9999 at 2018-07-08 00:16:02
char name; if (scanf_s(&quot;%s&quot;, name, sizeof(name)) == 1) printf(&quot;Your name is %s\n&quot;, name);

您能讲解一下吗?或者能用更加简单一点的表达出来吗?if语句我还没有学到呢
6楼2018-07-08 09:35:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

王国梁

铜虫 (初入文坛)

引用回帖:
4楼: Originally posted by lucifov at 2018-07-07 21:53:25
好久没用过c了,不过你的数组没有分配内存

编译器上好像说过这段错误,但是我不知道怎么解决它,你知道吗?
7楼2018-07-08 09:37:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucifov

木虫 (正式写手)

你要么分配动态内存,要么初始化

发自小木虫IOS客户端
8楼2018-07-08 09:41:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

王国梁

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by sspa9999 at 2018-07-08 00:16:02
char name; if (scanf_s(&quot;%s&quot;, name, sizeof(name)) == 1) printf(&quot;Your name is %s\n&quot;, name);

还有我原本的写法出现了什么问题才导致报错?能给我讲解一下吗?在下感激不尽
9楼2018-07-08 09:42:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sspa9999

至尊木虫 (著名写手)

引用回帖:
9楼: Originally posted by 王国梁 at 2018-07-07 17:42:52
还有我原本的写法出现了什么问题才导致报错?能给我讲解一下吗?在下感激不尽...

scanf_s调用,你的代码少了一个长度参数

发自小木虫Android客户端
10楼2018-07-08 13:19:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 王国梁 的主题更新
信息提示
请填处理意见