今天在看C的教程的时候,用VS2013写了一小段代码 scanf("%f",&w);
提示需要在预编译器里添加 _CRT_SECURE_NO_WARNINGS, 百度了下,发现要么用 scanf_s 来代替scanf,要么就添加这个定义
原因是,VS针对scanf的不安全性,又包了一个scanf_s的函数 ,定义里,多了一个长度的参数, scanf_s("%s",buf,sizeof(buf));
这样不会导致内存溢出错误(比如只能接受4个长度的数组,输入的时候却输入了6个长度)
(我也没明白,这个溢出会有什么异常)
GCC里直接编译,scanf,不会有错误提示的,这个错误是Windows专有的.
SCANF SCANF_S
时间: 2024-10-12 02:42:32