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数据而言是向上生长的,怎么可能覆盖掉函数的返回地址呢?

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

目录
相关文章
|
4月前
|
算法
‘/’ 和 ‘%’ 在编程中的作用【附加练习题】
‘/’ 和 ‘%’ 在编程中的作用【附加练习题】
|
5月前
|
C++
组合计数及补充
组合计数及补充
41 0
|
5月前
|
机器学习/深度学习
【知识补充】
【知识补充】
23 0
|
6月前
|
存储 编译器 C#
C#基础补充
C#基础补充
41 0
|
2月前
|
存储 编译器 程序员
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
106 0
|
3月前
答网友疑问:ABAP Function Module 如何支持内表结构不确定的动态输入参数试读版
答网友疑问:ABAP Function Module 如何支持内表结构不确定的动态输入参数试读版
12 0
|
7月前
字符串的进阶练习案例(接上一节)
字符串的进阶练习案例(接上一节)
30 0
|
10月前
|
编译器 程序员 C语言
C++入门(内容补充)
之前给大家更新了一系列关于C++的基础语法,那么今天小编再给大家进行部分内容的补充,然后我们马上就会进入类有关内容的介绍。
44 0
|
小程序 JavaScript
讲述小程序之其他常用内容
讲述小程序之其他常用内容
79 0
讲述小程序之其他常用内容
|
Kubernetes 容器
k8s补充
k8s补充