在C语言中为什么gets函数有的时候不推荐用? 编译的时候编译器都会提示warning?

2024-11-25 07:49:49
推荐回答(1个)
回答1:

这是关系到信息安全领域的一些知识。
会有这样的一个情况:
char a[12];
gets(a);
当你输入的东西远比12要长时,他还是会接收并写入空间。这样就溢出了,覆盖掉后面的相应空间。也就是说他写入了不该他来写的东西。如果写得设计好点,完全可以通过这个去完成一些不好的事情。编译器一般会提示你去换个安全的函数,来避免这个情况。