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?
-
SzerzőBejegyzés
-
Ú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ó.
}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.)
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.