오류, 버그, 질문 - 페이지 2242

 
darkangel8733 :

안녕하세요 '거북이'라는 조언자를 샀는데 오프라인에서는 안되네요???

글쎄, 그래서 그것은 단어에 순수합니다. Expert Advisor가 표준 지표를 포함하여 지표를 사용하는 경우 액세스할 수 있어야 합니다. 그렇지 않으면 자체적으로 작동하지 않습니다.

 
A100 :
단 하나의 요구 사항이있었습니다. 방해하지 말고 도와야합니다. 토론이 불필요하다고 생각되면 참여하지 마십시오 ... 그리고 결정하는 것은 귀하에게 달려 있지 않습니다(필요/불필요) - 이에 대한 관리 및 중재자가 있습니다

동의하지만 조언이 마음에 들지 않으면 단순히 대답할 필요가 없으며 질문이 없습니다. 여기에 모두가 필요하다고 생각하는 것을 씁니다. 조언을 제공하는 것이 필요하다고 생각했습니다. 감사 대신에 무상 지원을 제공하기 위해 청구서를 읽습니다 ... 행운을 빕니다

 
Konstantin :

동의하지만 조언이 마음에 들지 않으면 답변하지 않아도 됩니다.

이것은 좋은 조언입니다 ... 감사합니다 ... 사용하겠습니다
 

어때요?

 ArrayFree (SummArr);
ArrayResize (SummArr, 57 );
Print ( "SummArr_1=" ,SummArr[ 1 ]);
 2018.07 . 26 02 : 09 : 04.566 Pred_Ocenka_02 (Si Splice,M1)   SummArr_1=1190264832

배열 값이 비어 있지 않은 이유는 무엇입니까(0)?

 
Aleksey Vyazmikin :

어때요?

배열 값이 비어 있지 않은 이유는 무엇입니까(0)?

그리고 먼저 크기를 설정한 다음 지우면?

 
Vitaly Muzichenko :

그리고 먼저 크기를 설정한 다음 지우면?

그 다음에

2018.07.26 02:20:08.482 Pred_Ocenka_02 (Si Splice,M1)   array out of range in 'Pred_Ocenka_02.mq5' (76,27)
청소 후 크기 정보가 없습니다.
 
만약
 ArrayFree (SummArr);

제거하면 값도 비어 있지 않습니다. 어레이는 이전에 사용된 적이 없습니다.

 

어떤 종류의 넌센스, 여기에 코드가 완전히 줄어 듭니다.

 int SummArr[];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   ArrayFree (SummArr);
   ArrayResize (SummArr, 57 );
   Print ( "SummArr_1=" ,SummArr[ 1 ]);
   Print ( "SummArr_30=" ,SummArr[ 30 ]);   
   Print ( "SummArr_57=" ,SummArr[ 56 ]);   
  }
//+------------------------------------------------------------------+

출구에서

 2018.07 . 26 02 : 37 : 58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_1= 1190264832
2018.07 . 26 02 : 37 : 58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_30= 2097181
2018.07 . 26 02 : 37 : 58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_57= 154252694

누군가를 확인하십시오. 그렇지 않으면 내 터미널이 미쳐버릴 수 있습니다.

아니면 이것이 표준이며 이것이 모든 것이 쓰레기로 채워져야하는 방법입니까?

 

mql4 표시기의 코드가 작동을 멈췄습니다. 어떻게 고치는 지?

 else { // Иначе стрелка создана. Задаём её свойства
  ObjectSetInteger (Open_name, OBJPROP_ARROWCODE ,OpenArrowCode); //код стрелки 232 
  ObjectSet (Open_name, OBJPROP_COLOR ,ObjColor); //цвет стрелки
}

편집기는 'ObjectSetInteger'를 작성합니다. 어떤 오버로드도 함수 호출에 적용할 수 없습니다.

몇 년 동안 일하다가 갑자기 멈췄습니다. 하지만 그것은 부끄러운 일입니다.


 
Aleksey Vyazmikin :

어떤 종류의 넌센스, 여기에 코드가 완전히 줄어 듭니다.

출구에서

누군가를 확인하십시오. 그렇지 않으면 내 터미널이 미쳐버릴 수 있습니다.

아니면 이것이 표준이며 이것이 모든 것이 쓰레기로 채워져야하는 방법입니까?

동적 배열의 버퍼를 해제하고 null 차원의 크기를 0으로 설정합니다.

스크립트 및 표시기를 작성할 때 ArrayFree() 함수를 사용할 필요가 자주 발생하지 않을 수 있습니다. 스크립트가 종료되면 사용된 모든 메모리가 즉시 해제되고 사용자 지정 표시기에서 배열에 대한 주요 작업은 표시기 버퍼에 대한 액세스이며, 크기는 실행 중인 터미널 하위 시스템에 의해 자동으로 제어됩니다.

프로그램이 복잡한 동적 조건에서 메모리를 독립적으로 관리해야 하는 경우 ArrayFree() 함수를 사용하면 이미 불필요한 동적 배열이 차지하고 있는 메모리를 명시적으로 즉시 해제할 수 있습니다.

이해했나요? 불필요한.

당연히 메모리가 해제되고 배열의 크기를 설정하여 다시 할당하므로 아무도 그 내용을 보장하지 않습니다.

배열 초기화 사용: ArrayInitialize()