找回密码
 立即注册
搜索
查看: 264|回复: 5

在TC下出现这样的错误.是怎么回事呢?

[复制链接]

8

主题

10

回帖

23

积分

新手上路

积分
23
发表于 2003-11-26 11:29:24 | 显示全部楼层 |阅读模式
在TC下有运行的时候.一共有两个子函数.
单个函数运行的时候.出现了如下的对话框:
NTVDM CPU遇到无效的指令.
CS:6856 IP:ffe4 OP:ff ff 9a 3e 00 选择"关闭"终止应用程序.
然后就要你选择点"关闭"或者是"忽略".
当两个函数一起运行的时候.在编译的时候.出了错误.提示如下错误:
813:out of memory in function func2
好像是说程序超出了内存的范围.
这是怎么回事呢?
多谢帮忙!

7

主题

505

回帖

692

积分

高级会员

积分
692
发表于 2003-11-26 11:49:32 | 显示全部楼层
看一下有没有内存溢出阿,C中最常见的问题就是这个了:(,还不好找错误,仔细检查吧!
回复

使用道具 举报

8

主题

10

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2003-11-26 16:39:17 | 显示全部楼层
由于代码太长.不方便列出来.我是在编俄罗斯方块的程序.现在我大致的列出我的程序:
func1()/*这是个长条形下落的过程*/
{
/*略去初始化的工作*/
while(1)
{
if(sign==0)/*长条形横着下落*/
   {
   if(长条形没有到达底部而且下面没有其它的方块)
    {
        长条形方块下落及变形的处理
       }
    else
    {
        break;/*就跳出这个循环*/
       }
   }
  if(sign==1)/*长条形竖着下落*/
  {  
       if(长条形没有到达底部而且下面没有其它的方块)
       {
           下落及变形处理
            }
      else
         {
             break;/*跳出这个循环*/
              }
  }
}
}
   后面的一些方块的过程和上面的长条形的实现思想是一样.我怀疑是那个while(1)和那个跳出来循环break的问题.也不知道兄弟们是否看得懂我的描述.
谢谢你们的回答!
回复

使用道具 举报

382

主题

1万

回帖

1万

积分

信息监察员

海浩校长

积分
18269
发表于 2003-11-26 19:36:29 | 显示全部楼层
while没问题。你看看其他地方。可能其他问题导致程序陷入无限递归,函数无法返回。
回复

使用道具 举报

8

主题

10

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2003-11-27 09:53:40 | 显示全部楼层
楼上的兄弟.我感觉你所讲的有点意思.的确我的函数没有采用返回值.
我昨天试着在一个函数的下面加上了另外的一个函数.程序运行到第二函数结束.然后再跳出DOS窗口.
不知道你有没有听懂我的意思.也就是我原来的函数是这样的结构
func1(){..........}
func2(){...........}
main()
{
func1();
func2();

}
这样运行就会出现上面所说的错误.
后来改成这样的.
func1(){/*.........*/func2();}/*也就是函数func1()调用函数func2().
main()
{
func1();
}
程序运行到了函数func2()结束就返回DOS窗口.
回复

使用道具 举报

436

主题

7541

回帖

1万

积分

信息监察员

锄头

积分
10597
发表于 2003-12-9 19:15:40 | 显示全部楼层
调试方法:
先将fun2变成一个空函数,看还是不是这样?
不是,就一点点添加。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-23 15:14 , Processed in 0.071382 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表