打印
[应用相关]

gets()函数问题

[复制链接]
171|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
OKAKAKO|  楼主 | 2024-8-31 14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include<stdio.h> 
int main(void)
{
    char buff[10];
    memset(buff,0,sizeof(buff));

    gets(buff);

    printf("\n The buffer entered is [%s]\n",buff);

    return 0;
}


上面代码里的问题在于函数gets()的使用,这个函数
从stdin接收一个字符串而不检查它所复制的缓存的容积,
这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。

使用特权

评论回复
沙发
花间一壶酒sd| | 2024-8-31 21:56 | 只看该作者
gets() 函数的确存在安全隐患,因为它不进行边界检查,可能会导致缓冲区溢出,从而引发安全问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

209

主题

1446

帖子

4

粉丝