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

 
RaptorUK:
Pero puede manejar una función tan grande... como he explicado, cambiar el tipo de función y no hay error de compilación para el mismo tamaño de función...


Entonces, ¿significa que una función int requiere más recursos para ejecutarse? Tal vez entonces los metaquotes pueden hacer que init, deinit y start sean void para que consuman menos recursos.
 
RaptorUK:
Pero puede manejar una función tan grande . . como he explicado, cambiar el tipo de función y no hay error de compilación para el mismo tamaño de la función .

. . o dejarlo como un int y dejar en el return(0); y hacer esto para todas las llamadas

   ReturnedValue = ObCreate("EURUSDg",Column1xg,15,ZoomTimes);
   ReturnedValue = ObCreate("EURUSDa",Column1xa,15,ZoomTimes);

. . donde ReturnedValue es un int. . ¿adivina qué? no hay error de compilación.


Haz que tu código tenga sentido . . . y hey presto, como por arte de magia el error desaparece, raro eh ?

 
Una función int que devuelve 0 debería ser comparable a una función void, así que esto significa que hay algo.
 
tonny:

Entonces, ¿significa que una función int requiere más recursos para ejecutarse? Tal vez entonces los metaquotes pueden hacer que init, deinit y start sean void para que consuman menos recursos.
Por supuesto que unafunción int necesita más recursos para ejecutarse... tiene que devolver un valor y ese valor tiene que ser almacenado en memoria para poder ser devuelto. He visto gente codificar con init, start y deinit declarados como void . . no es algo que yo haga.
 
RaptorUK:

. . o dejarlo como un int y dejar en el return(0); y hacer esto para todas las llamadas

. . donde ReturnedValue es un int. . ¿adivina qué? no hay error de compilación.


Haz que tu código tenga sentido . . . y hey presto, como por arte de magia el error desaparece, raro eh ?


La función int también devuelve 0. En fin, problema resuelto pero en cuanto al error creo que aparece donde no debe.
 
tonny:
Una función int que devuelve 0 debería ser comparable a una función void, así que esto significa que hay algo.
No, no lo es... una función void no devuelve un valor... 0, 1, 10000 valores todos toman el mismo espacio de memoria para guardar . . todos son de tipo int y un int usa 4 bytes. void no devuelve nada, eso toma 0 bytes . . .
 
Esto significa que incluso con void si añadiéramos más objetos se llegaría a un punto de tensión y se volvería a producir el error. ¿Estamos de acuerdo?
 
Tomaré el silencio como un sí. Caso cerrado.
 
tonny:
Esto significa que incluso con void si añadiéramos más objetos se llegaría a un punto de tensión y se volvería a producir el error. ¿Estamos de acuerdo?
No, no estoy de acuerdo.

Pero parece que puedes tener razón. . .
 
RaptorUK:
No, no estoy de acuerdo.

Pero parece que puedes tener razón...

Ahora estamos en la misma página.