12个超好玩的C语言面试题,不来测试一下嘛?

本文列举了12个经典的C语言面试问题,涵盖指针、内存管理、函数、进程等方面。通过解答这些问题,不仅揭示了C语言中的常见陷阱,也提供了解决方案,帮助程序员提升技能。
摘要由CSDN通过智能技术生成

       12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!说不定还能涨知识哦!

1、gets()函数

       问:请找出下面代码里的问题:

       答:上面代码里的问题在于函数gets()的使用,

       这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,

       这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。

 

2、strcpy()函数

       问:下面是一个简单的密码保护功能,你能在不知道密码的情况下将其破解吗?

       答:破解上述加密的关键在于利用攻破strcpy()函数的漏洞。

       所以用户在向“passwd”缓存输入随机密码的时候并没有提前检查“passwd”的容量是否足够。所以,如果用户输入一个足够造成缓存溢出并且重写“flag”变量默认值所存在位置的内存的长“密码”,即使这个密码无法通过验证,flag验证位也变成了非零,也就可以获得被保护的数据了。例如:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值