O que causa o erro de transbordo de pilha em mql4? - página 2

 
RaptorUK:
Se você não quiser postar todo o código, para que o erro possa ser reproduzido, favor codificar algo que você possa postar por completo que reproduzirá o mesmo erro.


Veja meu posto um pouco antes disto.
 
Você anexou
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 os arquivos são idênticos.
 
WHRoeder:
Você anexou
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 os arquivos são idênticos.

Sim, desculpe. Eu voltei a anexar.
Arquivos anexados:
 
o que com o mt4 vamos ser codificadores ou coletores de bugs
 
RaptorUK:
... por que sua função é do tipo int?
Pena que você não tenha respondido a esta pergunta . . . torne a função nula , pois não precisa devolver nada, remova a recompilação do retorno(0), o que acontece ?
 
Aparentemente, ele não consegue lidar com uma função tão 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:
Pena que você não tenha respondido a esta pergunta... . tornar a função nula , pois não precisa devolver nada, remover a recompilação do retorno(0), o que acontece ?


Sim, isso também classifica. MAS por quê? E se dissermos que a função era uma int e que precisávamos do valor? Por que é que mudar parte dos objetos resolve se a função é int ou não. Mesmo começando, init e deinit são ints e eles retornam(0) de modo que não é a questão.
 
WHRoeder:
Aparentemente, ele não consegue lidar com uma função tão grande.


whroeder conseguindo o que estou falando.
 
tonny:

Sim, isso também classifica. MAS por quê? E se dissermos que a função era uma int e que precisávamos do valor? Por que é que mudar parte dos objetos resolve se a função é int ou não. Mesmo começando, init e deinit são ints e eles retornam(0) de modo que não é a questão.
return(0) está retornando um int, o int é zero . . . um vazio não retorna um valor, se você quiser ou retorna de uma função vazia no início você usa return;
 
tonny:

whroeder conseguindo o que estou falando.
Mas ele pode lidar com uma função tão grande ... como expliquei, mudar o tipo de função e não há erro de compilação para o mesmo tamanho de função ...