递归的问题。过路的进来瞧一瞧!!! DELPHI里面的递归最多可达到多少级呀。我的一个代码管理的模块中,将数据添加到树时使用了递归过程,但是当数据量大了的时候就提示“未知的错误” 我想是递归层数的问题。如果对递归的层数真的限制,那么这样的树型结构该怎样办啊。急死人了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果使用堆,那么我在递归中调用了其它的类,那么这些类怎样申请堆空间呢?变量可以用NEW,可对象怎以办呀? 我是C/C++语言出身的,对Delphi的了解不多,我只知道如果在C++语言中,可以用以下方法实现:在函数中定义所要使用的类的指针,然后在函数中为类申请内存,这样堆栈上就只占用指针的空间,而类就分配在堆上了,//Pascal中好象也有指针吧,我记得好象有个link Project -> Project Option -> Linker Max Stack Size 设大点试试看。没做过大的递归,我想你可以把类数据和类函数分开来。每次NEW一个类数据,这样会省下不少栈空间的。 谢谢大家的热心解答!!!!我在递归过程里,用了一个指针型的记录,我是手工给它分配空间的(堆),但是有一个TADOQuery,不怎样对它进行分配空间,现在在调试环境的时候提示的就是它出错,[TADOQuery].OPEN报错。我想应该是栈空间的问题吧。还请高手给实例的代码 每次递归都创建一个?差不多这样子,你试试吧!var LADOQuery1: TADOQuery;begin LADOQuery1 := TADOQuery.Create( nil ); LADOQuery1.ConnectionString := 'XXX'; LADOQuery1.SQL.Add( 'XXX' ); LADOQuery1.Open; //Enjoy LADOQuery1.Close; LADOQuery1.Free;end; [TADOQuery].OPEN报错原因很多,错误提示是什么? 这种错误很难除的,帮不了你了,wish you luck!!! 连接MYSql返回结果集问题 QueryPY.dll哪里有下载 一位想进入Delphi小菜农提一个数据库配置的问题 关于MDI窗口的问题 “男女配对”的SQL如何写??? 初学请教各位:标题栏的形状如何改变??在线等!! 选择符合要求记录问题 再问 IC 卡读卡的相关问题! 急!我的Delphi6无法编译程序?! 我在调用dll时出现"Access violation at address xxx in module 'user32.dll'"错误 关于多个ClientSocket连接ServerSocket的问题 帮我写个字符串的处理函数好吗?在线等待,有答案马上结
对Delphi的了解不多,
我只知道如果在C++语言中,
可以用以下方法实现:
在函数中定义所要使用的类的指针,
然后在函数中为类申请内存,
这样堆栈上就只占用指针的空间,
而类就分配在堆上了,
//Pascal中好象也有指针吧,我记得好象有个link
Max Stack Size 设大点试试看。没做过大的递归,我想你可以把类数据和类函数分开来。每次NEW一个类数据,这样会省下不少栈空间的。
我在递归过程里,用了一个指针型的记录,我是手工给它分配空间的(堆),但是有一个TADOQuery,不怎样对它进行分配空间,现在在调试环境的时候提示的就是它出错,[TADOQuery].OPEN报错。我想应该是栈空间的问题吧。
还请高手给实例的代码
LADOQuery1: TADOQuery;
begin
LADOQuery1 := TADOQuery.Create( nil );
LADOQuery1.ConnectionString := 'XXX';
LADOQuery1.SQL.Add( 'XXX' );
LADOQuery1.Open;
//Enjoy
LADOQuery1.Close;
LADOQuery1.Free;
end;