C语言问题:0xC0000005: 写入位置 0xFFFFFFCC 时发生访问冲突。

最近系统地开始学习C语言,在使用VS2019中用scanf_s为一串字符串赋值时,发生了错误,错误如下:
0x7837EF8C (ucrtbased.dll)处(位于 Project2.exe 中)引发的异常: 0xC0000005: 写入位置 0x01342000 时发生访问冲突。
**
在查询了一些资料后发现,这个问题应该时因为VS2019编译器中鼓励大家使用scanf_s函数来预防原scanf函数的数组越界问题。(在vs2019中使用scanf函数会报错编译不通过。)

#define WORD_SIZE 26
char name[WORD_SIZE];
scanf_s("%s",name);

若是这样会报错。

而如果我们提供数组名及数组长度,就可以编译通过。

#define WORD_SIZE 26
char name[WORD_SIZE];
scanf_s("%s",name,WORD_SIZE);

猜你喜欢

转载自blog.csdn.net/qq_28069941/article/details/118327800