在使用VS2022中用scanf_s为一串字符串赋值时,发生了错误,错误如下:
0x00007FF8CA5D216E (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 写入位置 0x000000EEF2D00000 时发生访问冲突。
char str[128];
scanf_s("%s", str);
printf("%s\n", str);
这个问题应该时因为VS2022编译器中鼓励大家使用scanf_s函数来预防原scanf函数的数组越界问题。(在vs2022中使用scanf函数会报错编译不通过。)只需要在scanf_s中添加数组长度即可。
char str[128];
scanf_s("%s", str,128);
printf("%s\n", str);