66问答网
所有问题
在C语言中为什么gets函数有的时候不推荐用? 编译的时候编译器都会提示warning?
如题所述
举报该问题
其他回答
第1个回答 2010-10-06
这是关系到信息安全领域的一些知识。
会有这样的一个情况:
char a[12];
gets(a);
当你输入的东西远比12要长时,他还是会接收并写入空间。这样就溢出了,覆盖掉后面的相应空间。也就是说他写入了不该他来写的东西。如果写得设计好点,完全可以通过这个去完成一些不好的事情。编译器一般会提示你去换个安全的函数,来避免这个情况。本回答被提问者采纳
相似回答
c语言的gets函数编译
不成功阿,很短的程序
答:
编译问题。这个是一个警告。我记得以前有看过,是说,
gets
没有限制输入字符的长度,你的数组a是100字节,如果输入101字节会溢出。只是建议你少用,用别的替代。
C语言编译器用
不了scanf();
gets
()之类
的函数
,是怎么回事啊。。。 一点...
答:
可能你的编译器被病毒感染
。我推荐你使用C-free编译器,支持C/C++
c语言的gets函数编译
不成功阿,很短的程序?
答:
C语言的gets函数一般包含在stdio.h头文件里,如果没有包含比头文件那可能会有问题
。第二种情况包含了还出问题,说明你的编译器已经不支持这个函数了,这个函数非常不安全,容易造成溢出,建议换成fgets函数。函数原型:char *fgets(char *buf, int bufsize, FILE *fp);参数解释:参数一是输入字符串存...
gets在c语言中
怎么用
答:
需要注意的是,
由于gets函数无法限制输入的长度,如果用户输入的字符串超过了缓冲区的大小,就会导致缓冲区溢出
,从而可能引发安全问题。因此,在实际应用中应该尽量避免使用gets函数,可以使用其他更安全的输入函数,如fgets等。C语言简介:C语言是一种通用编程语言,由Dennis Ritchie于1972年在贝尔实验室开发...
...
还有为什么
会
提示gets
()是一个未定义
的
标识符?
答:
C语言中
求一个二维数组有几行的方法如下:假设有定义int nums[10][20];二维数组行数可以用sizeof计算:rows = sizeof(nums)/sizeof(nums[0]);第二个问题,
为什么gets
会提示未定义标识,有两种可能:一、
编译器
支持gets库函数,但是你没有包含头文件#include<stdio.h>;二、编译器本身不支持gets库...
C语言gets
()
函数
和结构体
的
使用
答:
请不要使用getch();,这是非标准库里的函数,通常定义在<conio.h>里,部分老
的编译器
只用<stdio.h>也能通过。conio.h里包括的putch(),ungetch()等
函数有
时定义不同会造成许多麻烦。你的程序无法正常运行就与getch()有关。getch();可以吸收字符,但是有时吸收回车字符之后又把字符给了下面的输入...
大家正在搜
c语言中gets可以用什么替换
c语言gets和getchar
c语言中的gets
c语言gets的用法
gets函数c语言
gets函数用不了
gets函数的用法
c语言get与gets
c语言中gets_s
相关问题
c语言的gets函数编译不成功阿,很短的程序
为什么使用c语言编译的时候屏幕会闪?是显示屏的屏幕,不是编译...
C语言里的gets()函数
为什么在c语言中使用gets函数是危险的
关于C语言中gets()函数的问题
gcc环境下不能使用gets怎么办
C语言编译器用不了scanf();gets()之类的函数,是...
c语言,gets函数的详细用法?