gpt4 book ai didi

c - C中堆栈上的跟踪函数

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:28 24 4
gpt4 key购买 nike

我第一次潜入堆栈内存跟踪领域,所以我需要你的帮助。这是我的问题,需要您的提示:

我有两个函数:登录和注销()。有一个简单的条件:

  • 如果我调用 login() 来创建一个 session ,那么在我的程序中的某个地方,应该调用 logout() 否则应该会产生一个错误。

我相信我不能在编译时做,所以我必须在运行时做(我可能是错的)。

问题是我如何发现在 main() 返回之前在我的程序中调用了 logout() 并在未调用时生成错误。

我在想,在运行时,我在 login() 之后调用的每个函数都应该检查它是否是最后一个函数调用,然后查看 logout() 之前是否被调用过。

那么我如何在运行时知道某个函数是我的程序在 main() 返回之前调用的最后一个函数?

如有任何帮助,我们将不胜感激。

最佳答案

一种方法(也许不是最好的方法)是使用变量 loggedIn = 1,并传递对它的引用,以便 logout() 可以将其设置为零。在从 main() 返回之前检查它是否为零。

函数返回后,其地址已经出栈。

关于c - C中堆栈上的跟踪函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10223193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com