¿Qué causa el error de desbordamiento de pila en mql4? - página 2

 
RaptorUK:
Si no quieres publicar todo el código, para que se pueda reproducir el error, por favor codifica algo que puedas publicar en su totalidad que reproduzca el mismo error.


Ver mi post justo antes de esto.
 
Se adjunta
11/13/2013 03:25 PM 37,911 Ind_error_tester.mq4
11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4
Ambos archivos son idénticos.
 
WHRoeder:
Se adjunta
11/13/2013 03:25 PM 37,911 Ind_error_tester.mq4
11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4
Ambos archivos son idénticos.

Sí, lo siento. He adjuntado de nuevo.
Archivos adjuntos:
 
que con mt4 vamos a ser codificadores o recolectores de errores
 
RaptorUK:
... ¿por qué tu función es de tipo int?
Lástima que no hayas respondido a esta pregunta... haz que la función sea un void ya que no necesita devolver nada, quita el return(0) recompila, ¿qué pasa?
 
Aparentemente no puede manejar una función tan grande.
//+-------------------------------------------
//| Custom indicator initialization function  
//+-------------------------------------------
 int init()
  {
//---- indicators

int Column1x=10,Column2x=300,Column3x=590,
    Column1xp=70,Column2xp=360,Column3xp=650,
    Column1xg=130,Column2xg=420,Column3xg=710,
    Column1xa=250,Column2xa=540,Column3xa=830;

//---------------USD--------------------------
   //---- EURUSD-------------------
   ObjectCreate("EURUSD", OBJ_LABEL, 0, 0, 0);
 :
   ObjectSet("EURGBP2", OBJPROP_YDISTANCE, ZoomTimes*60);



   ObjectCreate("EURGBP2c", OBJ_LABEL, 0, 0, 0);
:
//+------------------------------------------------------
//| Custom indicator initialization function             
//+------------------------------------------------------
int Column1x=10,Column2x=300,Column3x=590,
    Column1xp=70,Column2xp=360,Column3xp=650,
    Column1xg=130,Column2xg=420,Column3xg=710,
    Column1xa=250,Column2xa=540,Column3xa=830;
int init(){ init1(); init2(); }
int init1()
  {
//---- indicators

//---------------USD------------------------------------
   //---- EURUSD-------------------
   ObjectCreate("EURUSD", OBJ_LABEL, 0, 0, 0);
:
   ObjectSet("EURGBP2", OBJPROP_YDISTANCE, ZoomTimes*60);
}
int init2()
  {
   ObjectCreate("EURGBP2c", OBJ_LABEL, 0, 0, 0);
:
 
RaptorUK:
Lástima que no hayas respondido a esta pregunta... haz que la función sea un void ya que no necesita devolver nada, quita el return(0) recompila, ¿qué pasa?


Sí eso también lo soluciona. PERO, ¿por qué? Me refiero a que si decimos que la función era un int y necesitábamos el valor. Por qué al cambiar parte de los objetos se soluciona si la función es int o no. Incluso start, init y deinit son ints y devuelven (0) por lo que no es el problema.
 
WHRoeder:
Aparentemente no puede manejar una función tan grande.


whroeder consiguiendo lo que estoy hablando.
 
tonny:

Sí, eso también lo soluciona. PERO, ¿por qué? Quiero decir que si decimos que la función es un int y necesitamos el valor. Por qué el cambio de parte de los objetos lo resuelve si la función es int o no. Incluso start, init y deinit son ints y devuelven(0) así que ese no es el problema.
return(0) está devolviendo un int, el int es cero... un void no devuelve un valor, si quieres o devuelves desde una función void pronto usas return;
 
tonny:

whroeder entender lo que estoy hablando.
Pero puede manejar una función tan grande... como expliqué, cambia el tipo de función y no hay error de compilación para el mismo tamaño de función...