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

 
MetaDriver :

전역 변수도 자동으로 초기화할 필요가 없습니다. 당신은 아마도 "운이 좋은" 사람일 것입니다. 따옴표로 묶은 운이 좋은 이유는 이러한 운이 "어제는 효과가 있었지만 오늘은 더 이상 작동하지 않습니다. 네, 플랫폼이 불안정합니다..!!"와 같이 개발자에 대한 좌파 주장과 함께 지붕의 후속 출구로 인해 어려움을 겪기 때문입니다.

도움에서. 전역 변수의 범위는 전체 프로그램이며 전역 변수는 프로그램에 정의된 모든 기능에서 사용할 수 있습니다. 다른 초기 값이 명시적으로 설정되지 않는 한 0 으로 초기화됩니다.

전역 변수를 경험한 후에 이러한 오류가 나타납니다.

추신: 초심자들의 어리석은 질문으로 인해 당신은 이에 대해 맹렬히 구독을 취소하고 있는 것 같습니다. 컴파일러입니다. 코드 크기는 신경 쓰지 않습니다. 추가 초기화는 1초 미만 동안만 속도를 늦추지만 전략 테스터에서는 다른 문제입니다.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
sion :

도움에서. 전역 변수의 범위는 전체 프로그램이며 전역 변수는 프로그램에 정의된 모든 기능에서 사용할 수 있습니다. 다른 초기 값이 명시적으로 설정되지 않는 한 0 으로 초기화됩니다.

아래 링크도 있습니다. 변수 초기화 도 참조하십시오 .

모든 변수는 정의될 때 초기화될 수 있습니다. 변수가 명시적으로 초기화되지 않은 경우 이 변수에 저장된 값은 무엇이든 될 수 있습니다 . 암시적 초기화는 없습니다.

 

다른 초기 값이 명시적으로 설정되지 않는 한 0으로 초기화됩니다.

암시적 초기화는 없습니다.

무엇을 믿어야 할지조차 모르겠습니다. Tol은 0으로 초기화되며, 명시적으로 값이 설정되지 않으면 암시적 초기화만 수행됩니다. 그냥 세 번째)

 
sion :

무엇을 믿어야 할지조차 모르겠습니다. Tol은 0으로 초기화되며, 명시적으로 값이 설정되지 않으면 암시적 초기화만 수행됩니다. 그냥 세 번째)

아무도 믿을 수 없습니다. 나는 - 할 수 있습니까 (c) 뮬러

프로그래밍 문화의 문제를 믿음의 문제로 바꾸는 이유는 무엇입니까? 명시적 초기화를 수행하지 않습니까? 조만간 결함이 나타날 것입니다(mt5에서는 반드시 그런 것은 아님).

 
stringo :

아무도 믿을 수 없습니다. 나는 - 할 수 있습니까 (c) 뮬러

프로그래밍 문화의 문제를 믿음의 문제로 바꾸는 이유는 무엇입니까? 명시적 초기화를 수행하지 않습니까? 조만간 결함이 나타날 것입니다(mt5에서는 반드시 그런 것은 아님).

직관에 의존합시다. 분명히 당신은 내 마지막 게시물을 지울 수 있습니다. 물은 아무것도 아닙니다.
 
sion :
직관에 의존합시다. 분명히 당신은 내 마지막 게시물을 지울 수 있습니다. 물은 아무것도 아닙니다.

왜 그런 미묘한 문제에서 직관에 의존합니까?

모든 변수를 명시적으로 초기화하기만 하면 됩니다. 어떤 경우에는 초기화가 무의미하다는 질문은 마이크로초를 절약하기 위해 사이클을 짜는 전문가에게만 해당됩니다.

 

빌드 630

ArrayResize () 함수( ArraySetAsSeries()=true)   배열의 크기를 줄이면 잘못된 요소가 제거됩니다.

인덱스가 0인 요소가 제거 되고 배열의 맨 마지막 요소 , 즉 인덱스(n-1)가 있는 요소가 제거되어야 합니다. 여기서 n은 배열의 크기입니다.

2011년 가을 빌드에서는 모든 것이 잘 작동했습니다.

 
MoneyJinn :

ArraySetAsSeries() = true일 때 배열 크기를 줄일 때 ArrayResize() 오류가 발생했습니다.

배열의 잘못된 쪽에서 요소가 제거됩니다.

"배열의 가장 오래된 요소"(가장 왼쪽)가 제거된다는 말씀이신가요?
 

curwords=GetPointer(첫 단어);
Print("next======",curwords.m_next!=NULL);
동안( curwords .m_next!=NULL || curwords.length<pp){ curwords=GetPointer(curwords.m_next); }

선택한 단어에 대한 조언을 테스트할 때 오류는 'iTester 7.mq5'(161,16)에서 잘못된 포인터 액세스를 표시한 다음 중지됩니다.

여기 무슨 농담이야?

작성하는 경우: while( firstwords .m_next!=NULL || curwords .length<pp){ curwords=GetPointer(curwords.m_next); } 오류는 'iTester 7.mq5'에서 잘못된 포인터 액세스로 이동합니다(161,43)

 

fellow :

여기 무슨 농담이야?


키워드 = NULL