代码造成旗舰版闪退

程序中加入一些代码后,旗舰版闪退。取消代码后正常。dmp文件如附件。代码编译没有问题,通过。但加载在图表中就闪退,代码如下,请帮忙看看是什么问题。While (...) { ... Else If(iTemp == 5) { If(Low[trPos4] <= Low) { TrendType = 3; Break; } If(High[trPos5] < High[trPos3]) { If(tmpHighPos == 0) { tmpHighPos = trPos5; tmpLowPos = trPos4; } Else { If(High[trPos5] >= High[tmpHighPos]) tmpHighPos = trPos5; If(Low[trPos4] <= Low[tmpLowPos]) { tmpHighPos = trPos5; tmpLowPos = trPos4; } } trPos4 = -1; trPos5 = -1; iTemp = 3; } Else { If(tmpHighPos > 0) trPos4 = tmpLowPos; If(Low[trPos4] <= Low[trPos2]) { trPos1 = trPos3; trPos2 = trPos4; trPos3 = trPos5; trPos4 = -1; trPos5 = -1; iTemp = 3; } tmpHighPos = 0; } } ... }

多半是while死循环内存溢出了你估算一下循环次数上限,然后用for循环替换while试试,估计就不会闪退了如果确实是死循环导致的,那就需要你自己推敲一下循环逻辑问题了。

回复:谢谢!暂时发现问题出在下面的语句:TrendType = 3;其中TrendType 是NumericSeries类型。在增加这段语句之前的版本中,这种赋值没有问题,程序正常。现在用Numeric类型替换,就没有闪退问题了。还是不明白其中缘由,需要再琢磨琢磨。