一个c++程序,大约有5000多行。在VC6.0和TC3.0下检查编译都没有问题,没有警告和错误,但是生成的可执行文件却有出入,vc下的可执行文件一切正常,而TC下的却有时候会不知原因的弹出来。程序使用到结构体和大量的指针等数据类型,以及文件操作!请有这方面解决经验的高手指教,不胜感激!
关注~!
观察一下是否有栈OVERFLOW?
编译的时候除非特别明显的递归循环,否则是不会提示。
观察递归调用中,是否存在可能导致无限递归或递归的次数过多。
我不是高手,表示关注。
如果错误没有可再现性,考虑是不是野指针赋值问题,即在没有为指针本身赋值前对其所指内存赋值
或者是内存分配失败,DOS下允许最大内存比WINDOWS下小得多
不出意外应该是内存的问题,VC下内存使用可是没有限制的,而TC下有,所以可能造成越界或溢出,也就Runtime Error了
内存问题,指针问题?
看来C++对编译器也需要搞一个标准啦。
不然实在有很多问题。
指针的问题比较大.
建议你这样,在程序里面多方一点断言assert,试试能不能把错误捕捉到
多捕捉一些输出信息等,然后来分析
建议首先考虑vc和tc在指针和内存方面的区别,它两的不同点我估计是问题出现的地方
找问题要首先确定问题的范围,逐渐缩小,直到找到问题,我不是高手,仅供参考!谢谢