6、关于《程序设计实践》中作者叙述gets读取数据会覆盖掉函数返回地址的思考,我认为作者叙述有误

简介: 在程序设计实践一书中,作者说如下程序会出问题: int main() { char buf[20]; gets(buf); if(...) } 这是因为gets不限制读入数据的长度,所以应当由fgets来代替。

在程序设计实践一书中,作者说如下程序会出问题:

int main()

{

char buf[20];

gets(buf);

if(...)

}

这是因为gets不限制读入数据的长度,所以应当由fgets来代替。这一点本人同意。但是作者有一个观点,本人不能赞同。

作者说,如果gets中读入的数据太多,可能会把函数(gets)的返回地址也覆盖。我们都知道,函数的返回地址在栈中,就本程序而言,其在栈中的位置的地址肯定比buf的地址低,而buf数据而言是向上生长的,怎么可能覆盖掉函数的返回地址呢?

    所以,本人认为,作者叙述有误。欢迎高手指教。

目录
相关文章
组合计数及补充
组合计数及补充
84 0
|
机器学习/深度学习
【知识补充】
【知识补充】
59 0
|
4月前
|
索引
一个简短的补充------对链表练习题的补充补充
一个简短的补充------对链表练习题的补充补充
28 0
|
9月前
|
存储 Java C#
静态字段科普:从原理到代码实践
静态字段科普:从原理到代码实践
77 0
|
9月前
|
存储 编译器 程序员
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
|
PHP 开发者
很多人觉得正则表达式中的【反向引用】这个概念很难, 其实特别简单 一个案例就明白了,没你想的那么高大上!
一个案例让你明白正则表达式中的【反向引用】,其实没有你想得那么难!
117 1
很多人觉得正则表达式中的【反向引用】这个概念很难, 其实特别简单 一个案例就明白了,没你想的那么高大上!
|
缓存 自然语言处理 小程序
这个迭代写了个小程序,顺便整理了一份笔记 📒 (4000字)
这个迭代写了个小程序,顺便整理了一份笔记 📒 (4000字)
230 0
|
数据库
【高效编码】查询日志的命令老是记不住?没关系,这篇文章帮你记
您好,我是码农飞哥,一直想飞暂时在跑个那个老哥。
273 0
【高效编码】查询日志的命令老是记不住?没关系,这篇文章帮你记
|
C语言
【C】指针进阶补充
【C】指针进阶 回调函数,qsort函数,冒泡排序
63 0
【C】指针进阶补充
超过6G的大文件是如何读取的,附源代码。含有网上很少有论述的信息
读取大文件有如下两种方法,一是用fopen打开文件,fgetline循环读取,fclose关闭文件;二是用open打开函数,用lseek获取文件大小,用mmap大文件内存映射,用munmap关闭内存映射,用close关闭文件句柄。方式一教慢,就不再详细描述。主要描述方式二。

热门文章

最新文章

相关实验场景

更多