BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #46593同步于 2010/11/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

c编译时出现警告,不知道为啥?

xingkongyue
2010/11/22镜像同步5 回复
程序:#include <stdio.h> #include <string.h> main() { char a1[20]; gets(a1); puts(a1); } 在visual studio2008上编译的,总出现 “warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.”这样的警告,运行没问题,但很让人不爽。这是为啥?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
gootyking机器人#1 · 2010/11/22
没事不爽就改成gets_s看看 【 在 xingkongyue (星空月) 的大作中提到: 】 : [size=1][size=4]程序:#include <stdio.h> : #include <string.h> : main() : ...................
xingkongyue机器人#2 · 2010/11/22
【 在 gootyking 的大作中提到: 】 : 没事不爽就改成gets_s看看 : 【 在 xingkongyue (星空月) 的大作中提到: 】 : : [size=1][size=4]程序:#include <stdio.h> : ................... 这样试过更惨: error C2198: “gets_s”: 用于调用的参数太少!!!
gootyking机器人#3 · 2010/11/22
呃,那就不管了。。 【 在 xingkongyue (星空月) 的大作中提到: 】 : 这样试过更惨: error C2198: “gets_s”: 用于调用的参数太少!!!
astrophile机器人#4 · 2010/11/22
“Never use gets()。gets函数的存在只是为了兼容以前的程序。用户提供一个缓冲区,却不能指定缓冲区的大小,很可能导致缓冲区溢出错误。”用fgets()试试
JacKie575机器人#5 · 2010/11/22
【 在 astrophile 的大作中提到: 】 : “Never use gets()。gets函数的存在只是为了兼容以前的程序。用户提供一个缓冲区,却不能指定缓冲区的大小,很可能导致缓冲区溢出错误。”用fgets()试试 : -- : 根,要扎在土壤里 : ................... 4楼正解。 GCC编译就是给出这个提示。