黑马程序员技术交流社区

标题: C语言有趣的问题一 [打印本页]

作者: socl_ycl    时间: 2015-9-16 14:07
标题: C语言有趣的问题一
请找出下面代码里的问题:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void) {
  4.         char buff[10];
  5.         memset(buff,0,sizeof(buff));
  6.         gets(buff);
  7.         printf("\n The buffer entered is [%s]\n",buff);
  8.         return 0;
  9. }
复制代码




作者: socl_ycl    时间: 2015-9-16 14:12
欢迎大神来指导哦~~~
作者: lumangmang    时间: 2015-9-17 12:23
定义的数组长度是10,但gets可以接收大于10的长度
作者: L503254118    时间: 2015-9-17 16:19
memset 是什么意思,感觉视频里面没有讲过呀
作者: socl_ycl    时间: 2015-9-17 18:05
上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2