C 中使用 gets() 提示 warning: this program uses gets(), which is
[导读]:C 中使用 gets() ,编译时会出现如下警告: warning: this program uses gets(), which is unsafe. gets() 不安全是因为你给了他一个缓冲区,但是你却没有告诉它这个缓冲区到底有多大,也不知...
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);
本文来自投稿,不代表微盟圈立场,如若转载,请注明出处:https://www.vm7.com/a/ziyuan/112082.html