首页 > 互联资讯 > 技术交流  > 

C 中使用 gets() 提示 warning- this program uses gets(), which is unsafe.( 计算机网络基础知识总结)

C 中使用 gets() 提示 warning: this program uses gets(), which is unsafe.( 计算机网络基础知识总结)

C 中使用 gets() ,编译时会出现如下警告:

warning: this program uses gets(), which is unsafe.

gets() 不安全是因为你给了他一个缓冲区,但是你却没有告诉它这个缓冲区到底有多大,也不知道输入的内容到底有多大,输入的内容可能超出缓冲区的结尾,引起你的程序崩溃。

解决方法可以使用 fgets 替代:

char buffer[bufsize];fgets(buffer, bufsize, stdin);

实例:

// 使用 gets()char buffer[4096];gets(buffer); // 使用 fgets() 替换 gets()char buffer[4096];fgets(buffer, (sizeof buffer / sizeof buffer[0]), stdin);

C 中使用 gets() 提示 warning- this program uses gets(), which is unsafe.( 计算机网络基础知识总结)由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C 中使用 gets() 提示 warning- this program uses gets(), which is unsafe.( 计算机网络基础知识总结)