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);
尊贵的董事大人
英文标题不为空时 视为本栏投稿
需要关键字 描述 英文标题