Forex programozás Fórum Kérdések az MQL4 programozási nyelvvel kapcsolatban Egy függvénynek át lehet valahogy adni paraméterben egy tömböt?

Címkézve: , ,

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • naburus
    Tag
    Bejegyzések száma: 19

    Úgy látszik én vagyok most a legaktívabb. Remélem nem fárasztó a sok kérdésem. :)
    A példából jól látszik át szeretnék adni paraméterben egy tömböt egy függvénynek, mert tele van a kódom ArrayResize -al és zavarja a szememet. Több módszer próbáltam de semmi sem működik. Megjegyzem azzal hogy nincsenek pointerek az mql -ben kiherélték a c++ -t. Van erre valami megoldás?

    double arr[];

    void OnStart()
    {
    ArrayResize(arr,100000,100000);
    DoArrayResize(arr,0,3.14); // 0 adik elem legyen = 3.14 el
    Alert(arr[0]);
    }

    void DoArrayResize(double[] array,int index,double value)
    {
    int indexIncrement=index+1; // 0 a nem lehet ezért 1 el több
    ArrayResize(array,indexIncrement,100000);
    array[index]=value; // Ez biztos nem jó így nem tudom hogy lenne jó.
    }

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Mindig akkora tömböket használj, amekkora épp szükséges. Felesleges memóriát pazarolni 100 000 elemre, ha csak 10-et fogsz használni.

    Függvényt átadni így tudsz:

    
    double
     bla[];
    
    Fuggveny(bla);
    
    void Fuggveny (double arr[]) {
    
       Print("Tömb elemeinek száma = ", ArraySize(arr));
    }
    

    Ha szeretnéd a tömbön belül módosítani a tömböt, akkor pedig a & jelet használd:

    
    double
     bla[];
    
    Fuggveny(bla);
    
    void Fuggveny (double &arr[]) {
    
       Print("Tömb elemeinek száma = ", ArraySize(arr));
    
       ArrayResize(arr, 19);
    
       Print("Tömb elemeinek száma az átméretezés után = ", ArraySize(arr));
    }
    

    Fontos, hogy az új MQL4-ben kizárólag a & jeles változatot tudod használni (ha lefelejted, szól a compiler)

    Én írtam magamnak átméretező, hozzáadó, törlő függvényt minden fontosabb típushoz (double, int, string, stb.)

    naburus
    Tag
    Bejegyzések száma: 19

    Oké, köszönöm, így valóban működik.

3 bejegyzés megtekintése - 1-3 / 3
  • Be kell jelentkezni a hozzászóláshoz.