Неправильная работа с массивом

 

Вот такой код:

extern int risk=10;
extern int bars=120000;
bool      result,
          up,
          dn;
int       magic,
          i,
          n=0,
          r=0,
          ls;
double    high,
          hh,
          hm,
          hl,
          medium,
          lh,
          lm,
          ll,
          low,
          fup,
          fdn,
          fm,
          f,
          lot,
          level[1];

int init()
  {
   return(0);
  }

int deinit()
  {
   return(0);
  }

int start()
  {

  up=False;
  dn=False;

   for (i=0; i<bars; i++)
   {
    f=iFractals(NULL, 0, MODE_UPPER, i);
    if (f>High[0] && f!=0 && up==False)
    {
     fup=f;
     up=True;
    }

    f=iFractals(NULL, 0, MODE_LOWER, i);
    if (f<Low[0] && f!=0 && dn==False)
    {
     fdn=f;
     dn=True;
    }
   
   if (up==True && dn==True)
   {
      fm=(fup+fdn)/2;
      break;
   }
   }

getlevels();
r+=1;
if (r==1) for (i=0; i<ArraySize(level); i++) Alert(level[i]);




   return(0);
  }

int getlevels()
{
for (i=0; i<bars; i++)
{
f=iFractals(NULL, 0, MODE_UPPER, i);
if (f!=0 && f<fup && f>fdn)
{
level[n]=f;
n+=1;
ArrayResize(level,n);
}
}
n=ArraySize(level);
for (i=0; i<bars; i++)
{
f=iFractals(NULL, 0, MODE_LOWER, i);
if (f!=0 && f<fup && f>fdn)
{
level[n]=f;
n+=1;
ArrayResize(level,n+1);
}
}
n=0;
return(0);
}

не хочет заполнять 0-й елемент и пропускает некоторые по средине...

n - в начале равно нулю

level[n] = значение

как level[0] может быть 0 ?

 

вероятно в начале getLevels() стоит сделать ArrayResize(level,1);

а зачем во втором (getLevels()) цикле for ArrayResize(level,n+1); ?

 
keekkenen, химичил...
 
теперь в масиве одни нули и предпоследний с значением ))
 
все.. я его сделал.. ))
Причина обращения: