发新话题
打印

【求助】程序突然自己停止,不知道什么原因

【求助】程序突然自己停止,不知道什么原因

我写了一个建立索引的程序在服务器上运行,处理到1000万行数据时 自己退出了不知道什么原因.
0 F9 \+ y; ^+ |# y* M9 I( e2 M
3 O. P+ V5 J4 ]  u" `( H, k. u急求各位大侠帮忙.; T9 W2 @% t+ Q. [" q
源程序:8 b$ _7 g' _6 E  P: g, Q, F
for(int i = 0; i < len - 1; ++i): E3 I* [: s( J& r" \$ n0 p
{
! z! w! I, h7 r1 u, a0 h: m  index_info.stroffset = i;
1 V4 [7 r2 B  N  unsigned char ch1;
1 E9 S! q2 Z8 w* |* G. Q  unsigned char ch2;
# A) o. U* @# G4 F  
, H$ j2 J1 ~8 V. W0 G  [: x# o! C0 b  if(str >= 'A' && str <= 'Z')
/ P+ Q7 E7 O7 G5 {- N  {
* ~* ?6 ^$ m# x3 c9 z7 M   ch1 = str - 'A' + 'a';
$ K. q$ o6 z' @1 I) Q" y* X  }3 c, O' ^+ ~0 C) P/ O$ J# [
  else
* x! t& D9 I2 h7 g7 L  {
' T  G; p* A3 p2 G+ d; C1 f   ch1 = str;
- e* {  A9 x, t  }: c  @9 U" u7 W9 }
  if(str[i + 1] >= 'A' && str[i + 1] <= 'Z')
& `$ u. i; \' {# t/ ]5 u  {
# v8 j6 [  r" [* A   ch2 = str[i + 1] - 'A' + 'a';
) w6 ?8 g; t- y8 T  }
* @+ r/ D) M# A& e  else4 `5 r' a. n( c/ J( I9 u
  {
- m- C1 t! n0 t+ t   ch2 = str[i + 1];) r- _% S, @5 ]7 W( c& Q4 e0 b' E
  }
' H/ h6 ?& g! z8 B6 D  D          Y2 i7 f9 O1 v! o* g6 H' D; s
        // 把此索引加入暂存数组3 ~3 O8 b9 _6 Y4 }* R9 Y" J' z
        _index_vec[ch1][ch2].push_back(index_info);//vector 数组
( t) x( _3 i, I& h1 a }      

TOP

1000万,还不如用数据库吧……      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

if(str[i + 1] >= 'A' && str[i + 1] <= 'Z')5 A* u, b3 ?# |, ~& ]. {# e! Z( ], I9 ?
{  r0 F8 c$ d) X2 r& N- ]7 x1 G
ch2 = str[i + 1] - 'A' + 'a';1 I6 i9 a+ S5 O* F0 \& Q( _
}0 t3 x6 @( Y( }; p% q
else7 }7 m% u' U- d# {0 n
{) M6 e0 n2 s2 U& k; ]
ch2 = str[i + 1];
7 {$ N8 k( {) U" _$ R$ v6 R5 e# G# q  S, A" F

! o& f: u7 ]# Y( S0 E4 j( M有什么用呢?
! {4 o; v; Y: G+ a, a在上面的ch1中(下一次循环中)不是可以转换了么。而且会造成内存段错误,当最后一次循环时进行到str[i + 1] 发生。      

TOP

因为内存错,所以退出或报错。      

TOP

楼上估计是误会了,呵呵      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

各位这只是程序的一个片段.不知道内存错误是指什么呢? 溢出还是其他的?      

TOP

后面还有500万没有处理呢,顺便说一声数据是从文件中读入的      

TOP

发新话题