应用程序使用getc时报警告: ‘gets’ is deprecated...
警告: ‘gets’ is deprecated (declared at /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/stdio.h:638) [-Wdeprecated-declarations]gets(str);
·
一、报警告内容:
警告: ‘gets’ is deprecated (declared at /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/stdio.h:638)
(.text+0x86): 警告: the `gets’ function is dangerous and should not be used.
虽然程序能够运行,但有警告提示,因为gets函数使用比较危险,gets函数不检查预留存储区是否能够容纳实际输入的数据量,如果输入的字符大于定义的数组长度,会发生内存越界。
二、解决方法
使用 fgets 代替 gets: fgets(temp, sizeof(emp), stdin);
例如:
gets(str); 修改为:
gets(str, 20, stdin);
警告消失!
更多推荐
已为社区贡献1条内容
所有评论(0)