我正在编写一个使用大量递归函数的C程序。我也在使用动态列表在递归时存储一些数据。我实现了Push功能来将数据推送到列表中。是内存泄漏,还是函数调用的限制,还是什么?
几个电话的推送功能“> 17000次”我收到以下错误后:
未处理的异常在0x77963c47在习题 - 盖CE.exe:0xC00000FD:堆栈溢出。
在return HeapAlloc(_crtheap, 0, size ? size : 1);
,在Push功能中从stack->listNode = malloc(sizeof(struct Node));
调用。
我打开任务管理器,发现我仍然有很多空闲的内存。所以我猜这不是内存泄漏问题。
有多少我可以添加到列表中,或者我可以调用一个函数多少次?
请张贴您的代码。谢谢。 – 2011-08-21 14:05:30
你递归的程度有多深?当你太深时,你的程序堆栈将不足以处理那么多的功能框架。 – Nobody