MultiDimensionales Array als Parameter weiterleiten... Wie?

 

Mein Code:

Thing is: Wie kann ich funktionsparameter wie:

(double& MainPredArr[][],double& MetaPredArr[][])

weitergeben ohne die 2. dimension angeben zu müssen?

Jeeedes Mal  bei Spaltenzahländerung auch überall die Parameter ändern zu müssen ist doch sehr unübersichtlich...


string MainPredArr[][2*6];   

double MetaPredArr[][2*6];    



static int  colAmountMain,colAmountMeta;
static bool gotPreds=false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ArrayResize(MainPredArr,(ArraySize(MainPredArr)+1));
   colAmountMain = ArraySize(MainPredArr);
   ArrayResize(MainPredHeader,colAmountMain);
   
   ArrayResize(MetaPredArr,(ArraySize(MetaPredArr)+1));
   colAmountMeta = ArraySize(MetaPredArr);
   ArrayResize(MetaPredHeader,colAmountMain);   
}



void OnTick()
if (!gotPreds)
      {
      if (getPreds(MainPredArr[][],MetaPredArr[][]))
         {Print("successfully imported predictions.");
         gotPreds = true;}
      else
         {Print("ERROR while importing predictions!");}
      }


void getPreds (double& MainPredArr[][],double& MetaPredArr[][])
   {
        Print("Hello MQL5.com");        }



Da ich schon dabei bin: gibt es irgendeine Möglichkeit die 2. dimension mit flexibelen Inputgrößen zu gestalten? Etwa nach dem Motto

string MainPredArr[][Inputparameter];   
 
Bayne:

Mein Code:

Thing is: Wie kann ich funktionsparameter wie:

weitergeben ohne die 2. dimension angeben zu müssen?

Jeeedes Mal  bei Spaltenzahländerung auch überall die Parameter ändern zu müssen ist doch sehr unübersichtlich...

Da ich schon dabei bin: gibt es irgendeine Möglichkeit die 2. dimension mit flexibelen Inputgrößen zu gestalten? Etwa nach dem Motto

Mit dynamischen Arrays geht da nix. Drück halt mal F1 bei ArrayResize - alles bezieht sich auf die erste Dimension.

statisch kannst du es so machen:

#define  dim1 10
#define  dim2 12

double myArray[dim1][dim2];

void OnStart()
{
   int i,j;
   for(i=0; i<dim1; i++)
      {
         myArray[i][0]=i;
         for(j=1; j<dim2; j++)
            myArray[i][j]=j*2+i;
      }
   ArrayPrint(myArray);
   Print("\n");
   ArrayPrint(myArray,2,"\t",0,WHOLE_ARRAY,ARRAYPRINT_HEADER||ARRAYPRINT_INDEX);
}

Willst du mehr brauchts du OOP

Grund der Beschwerde: