我在看有关CUDA和Barnes-Hut算法的视频时,其中提到必须对GPU树设置深度限制。这使我想到了在堆中进行递归的可能性。
我的问题是:是否可以从堆中分配内存,并将其用作临时“堆栈”,以便将递归函数的函数调用放入其中,以延迟堆栈溢出?
如果可以,如何实现?我们是否应该为指向函数的指针分配空间?我认为这可能涉及将函数地址存储在堆中,但我不确定。
[编辑] 我只想补充说,这纯粹是一个理论问题,我想象中这样做会导致程序一旦使用堆就变慢。
[编辑] 根据要求,我使用的编译器是Ubuntu 14.04(64位)上的GCC 4.8.4。
我的问题是:是否可以从堆中分配内存,并将其用作临时“堆栈”,以便将递归函数的函数调用放入其中,以延迟堆栈溢出?
如果可以,如何实现?我们是否应该为指向函数的指针分配空间?我认为这可能涉及将函数地址存储在堆中,但我不确定。
[编辑] 我只想补充说,这纯粹是一个理论问题,我想象中这样做会导致程序一旦使用堆就变慢。
[编辑] 根据要求,我使用的编译器是Ubuntu 14.04(64位)上的GCC 4.8.4。