mql4でスタックオーバーフローエラーが発生する原因は何ですか? - ページ 2

 
RaptorUK:
もし、エラーを再現できるように、すべてのコードを掲載したくない場合は、同じエラーを再現できるような、全文を掲載できるものをコーディングしてください。


この直前の私の投稿を参照してください。
 
添付ファイル
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
両ファイルは同一です。
 
WHRoeder:
添付ファイル
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
両ファイルは同一です。

はい、すみません。もう一度添付します。
ファイル:
 
mt4ではコーダーになるのか、バグ取り係になるのか。
 
RaptorUK:
...なぜ関数の型はint なのですか?
この質問に答えていないのは残念です ...関数を 何も返す必要がないのでvoidにして 、return(0)を削除して再コンパイルしたらどうなりますか?
 
どうやらそんなに大きな関数は 扱えないようです。
//+-------------------------------------------
//| 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:
この質問に答えていないのが残念です ... 関数を何も返す必要がないのでvoidにして 、return(0)を削除して再コンパイルするとどうなりますか? 。


はい、それはまたそれを並べ替えます。しかし、なぜでしょうか?つまり、関数が intで、その値が必要だったとしたらどうでしょう。なぜ、オブジェクトの一部を変更すると、関数がint型であろうとなかろうと、解決するのでしょう。start, init, deinitもintであり、return(0)なので問題ないでしょう。
 
WHRoeder:
どうやらそんなに大きな関数は扱えないようです。


whroederは私が言っていることを理解しています。
 
tonny:

はい、それもあります。しかし、なぜでしょうか?つまり、関数がint型で、その値が必要だったとしたらどうでしょう。なぜオブジェクトの一部を変更すると、関数がint型であろうとなかろうと解決するのでしょう。start, init, deinitもintであり、return(0)を返しているので問題ない。
return(0)はintを返しているのであって、intは0です。voidは値を返しません。
 
tonny:

whroederは私が言っていることを理解している。
しかし、それはそのような大きな関数を 扱うことができます ... 私が説明したように、関数の型を変更し、同じサイズの関数でコンパイルエラーはありません... ...