Stack overflow

kxiaozhuk 2011-04-11 09:33:42
'Stack overflow' ,堆栈溢出的问题怎么解决,是不是我函数定义的变量过多了,还是怎么样了?有没有相关的资料说明?
...全文
229 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kxiaozhuk 2011-04-15
  • 打赏
  • 举报
回复
不好意思,那个代码实在太长,而且不止一个,我只能这样子提问,大概就是我自己定义了一个矩阵类型,像这样:

const MAXROW=300;
const MAXCOL=300;
type TMatStr=array[0..MAXROW-1,0..MAXCOL-1] of String;


然后我要拿这种类型去实现矩阵乘,求逆,和左右除吧,这些都能编译通过,但是在测试的时候,给矩阵初始化就出了问题
像这样:

var
x,y,Res:TMatStr;

For I:=0 to 7 do
x[I][0]:=random(5);//其实一个是没问题的,两个就出问题了
For I:=0 to 7 do
y[I][0]:=random(10);
…………………………

问题大概是这样咯,现在我也找不出办法
只好试着用一维动态数组去实现矩阵,还在努力当中……


iamduo 2011-04-14
  • 打赏
  • 举报
回复
我今天刚研究了一个。
用 VC 写的DLL,用Delphi 调用。
结果就出了这样的事情,
原因是Delphi用 stdcall调用,C 用 cdcall写的。
参数压栈错误,也会出这样的报错。
hanks_gao 2011-04-14
  • 打赏
  • 举报
回复
楼主先去学学提问的学问吧!
Hannibal 2011-04-14
  • 打赏
  • 举报
回复
我这两天总是写死循环,要么是无限递归,都会报这个错。你看看你是不是也犯了同样类型的错?
Monkey_D_Luffy 2011-04-13
  • 打赏
  • 举报
回复
要么是有 无穷递归或太深的递归
要么是定义 了太大的变量
sky198306 2011-04-12
  • 打赏
  • 举报
回复
非常有可能你的代码直接越界了~
keeley20 2011-04-12
  • 打赏
  • 举报
回复
仔细检查下自己的代码是否有死循环之类的,代码不长可以贴出来大家帮你看。
haitao 2011-04-12
  • 打赏
  • 举报
回复
一般是不小心循环调用了才会这样
sforiz 2011-04-12
  • 打赏
  • 举报
回复
贴代码让大家看看
bdmh 2011-04-11
  • 打赏
  • 举报
回复
谁知道你干什么,很多情况都可以引起这类错误,比如递归,内存分配等等
老之 2011-04-11
  • 打赏
  • 举报
回复
数组设置太长有可能会出现这种错误。你可以在Project-Options-Linker下,设置一下Max Stack Size
天火 2011-04-11
  • 打赏
  • 举报
回复
在WINDOWS中,每个程序在内存中是独立的4GB空间,你就是再怎么定义变量,也不至于到这个溢出程度吧?
Oraclers 2011-04-11
  • 打赏
  • 举报
回复
將代碼和錯誤信息貼出。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧