程序无提示退出是什么原因?

randomzgm 2002-12-25 09:27:53
程序进行一段时间,在没有任何提示的情况下,自动退出,请问这是什么原因?源代码里面没有涉及进程退出的语句,会不会是因为内存泄漏呢?
...全文
114 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
大大怪老张 2003-01-09
  • 打赏
  • 举报
回复
学习。
lifuming 2003-01-09
  • 打赏
  • 举报
回复
程序可能是内存管理出现了问题!
randomzgm 2003-01-09
  • 打赏
  • 举报
回复
对,在用strncpy函数之前进行检测是一个有效的方法,可以避免出错。
但是,我想知道strncpy(d, p, -2)为什么会导致进程直接退出。因为一般来说,任何异常都是可以被捕捉的。
penu 2003-01-09
  • 打赏
  • 举报
回复
在用strncpy函数之前检测第三个参数的值是否有效。
randomzgm 2003-01-09
  • 打赏
  • 举报
回复
没错,是-2。
源程序里当然不会直接用常量-2作为参数的。

以上代码当然是明显有错的
不过,我想知道的是为什么它会导致进程直接退出。
penu 2003-01-09
  • 打赏
  • 举报
回复
-2 ?
randomzgm 2003-01-09
  • 打赏
  • 举报
回复
问题已经找出来了,但无法解释。导致进程直接退出的代码如下:
char *p = "abc";
char d[10];
strncpy(d, p, -2);//就是这里,try...catch无法捕捉这里的异常
s98231106 2002-12-25
  • 打赏
  • 举报
回复

可能你的进程被杀了。
almser 2002-12-25
  • 打赏
  • 举报
回复
这种情况我也曾碰到过,不知是否与你的类似,当时是对一个数据库进行操作的程序,当时没有在操作数据时使用异常处理,即连接数据库完成后就没有作异常处理,结果有时就莫名其妙底退出,后来查了一下是在其过程中数据库可能中断,而操作无法进行产生异常退出,不知你是否是这个原因,也可能是内存操作时越界等等,试试在处理数据时加try catch(...)。
randomzgm 2002-12-25
  • 打赏
  • 举报
回复
请问 Wingsun(孙春阳) 说的“三层结构”是指哪个方面的?这个程序本来就是三层(多层)结构中的中间层部分。
randomzgm 2002-12-25
  • 打赏
  • 举报
回复
没有用三层结构
warton 2002-12-25
  • 打赏
  • 举报
回复
老大来了,关注!!
Wingsun 2002-12-25
  • 打赏
  • 举报
回复
是不是用到了三层结构?
randomzgm 2002-12-25
  • 打赏
  • 举报
回复
没有使用这些东西,这程序在多台机器上使用都会出现这种情况!
randomzgm 2002-12-25
  • 打赏
  • 举报
回复
那会不会是因为内存泄漏问题呢?
GaoLun 2002-12-25
  • 打赏
  • 举报
回复
好像有些软件 说是可以自动结束 没有响应的程序 或者是超时的程序

是不是你用这些东西
warton 2002-12-25
  • 打赏
  • 举报
回复
楼上说的是!!
woainihaha 2002-12-25
  • 打赏
  • 举报
回复
建议你对所有的数组进行边界检测,并多设置异常捕获语句!!
woainihaha 2002-12-25
  • 打赏
  • 举报
回复
呵呵,这种错误是最难处理的错误之一,通常是访问的数据超出边界,但并没有改写超出边界的数据,所以在多数情况下不会出现错误和异常。但是一旦访问的数据正在被其他对象使用的时候就会崩溃!!通常这种错误需要大量和比较完整的测试,只用CodeGuard在普通测试时是找不出来的,需要使用绝对完整和遍历所有可能使用的数据和资源才能捕获!!
warton 2002-12-25
  • 打赏
  • 举报
回复
是不是有什么杀毒软件,把多余的程序都关闭,然后再试!!
加载更多回复(3)

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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