gpt4 book ai didi

c++ - 如何访问调用堆栈?

转载 作者:行者123 更新时间:2023-11-30 03:02:15 25 4
gpt4 key购买 nike

我有一个由父节点和子节点组成的树数据结构,是这样的:

<Node1>
<Node2/>

<Node3>
<Node4/>
</Node3>
</Node1>

为了解析结构,我使用了 μ 递归函数:

void RecursiveFunction(NodeT node)
{
if(node.has_child())
RecursiveFunction(node.child());
}

当我调用 RecursiveFunction 作为参数传递时,例如,Node2 我想访问父亲(Node1)数据而不使用其他数据结构存储这些数据,因为第一个节点的数据已存储在调用中在进行递归调用之前堆栈。所以我需要访问调用堆栈来读取 Node1 的数据,同时解析 Node2 无法直接访问父亲,等等。

例如,如果我正在解析 Node4:

void RecursiveFunction(NodeT node)
{
/* Access to Node3 and Node1 data...

if(Node4.has_child())
RecursiveFunction(Node4.child()); */
}

这可能吗?以什么方式?

谢谢。

最佳答案

这是可能的,但这样做是相当危险的。这主要是因为您想弄乱进程堆栈。此外,我认为没有任何库函数可以这样做,也就是说您必须进行一些指针运算才能实现这一点。

关于c++ - 如何访问调用堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10279785/

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