MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 596

 
Juer :

자 그리고 나서. OnDeinit()에서 삭제하겠습니다. 하지만 이제 테스트 중에 이미 메모리 부족 오류가 발생했습니다... 즉, OnDeinit()에 도달하지 않습니다.

따라서 많은 중복 개체를 만듭니다. 그런 다음 일반적으로 모든 것이 떠 있고 끝을 찾지 못할 것입니다.

 
Artyom Trishkin :

따라서 많은 중복 개체를 만듭니다. 그런 다음 일반적으로 모든 것이 떠 있고 끝을 찾지 못할 것입니다.

그리고 정확히 어디에서 개체를 삭제하지 않는지 어떻게 알 수 있습니까? 프로그램이 큽니다 :)

 
Juer :

그리고 정확히 어디에서 개체를 삭제하지 않는지 어떻게 알 수 있습니까? 프로그램이 큽니다 :)

그런 무리를 어디서 어떻게 낳았는지 먼저 알아내야 합니다. 내 기억이 맞다면 수만 가지가 있습니까? 이게 뭐야? 과거 데이터 개체? 또는 어떤 종류의 물체가 있으며 그 수는 무엇입니까? 객체 배열 - 무엇?

 
Artyom Trishkin :

그런 무리를 어디서 어떻게 낳았는지 먼저 알아내야 합니다. 내 기억이 맞다면 수만 가지가 있습니까? 이게 뭐야? 과거 데이터 개체? 또는 어떤 종류의 물체가 있으며 그 수는 무엇입니까? 객체 배열 - 무엇?

아, 거기에 많이 있어요. 기본적으로 양초의 종류 와 규칙. 복잡하다 ))

 
Juer :

그리고 정확히 어디에서 개체를 삭제하지 않는지 어떻게 알 수 있습니까? 프로그램이 큽니다 :)

당신은 우연히 매 틱마다 새로운 객체를 생성하지 않습니다. 물론 이런 식으로도 가능 하지만(나의 경우 항상 합리적이지는 않음) 객체 작업이 끝난 직후에 날려버리는 것이 더 합리적일 것입니다. 이것이 생각나는 유일한 설명입니다.

 
Juer :

아, 거기에 많이 있어요. 기본적으로 양초의 종류 와 규칙. 복잡하다 ))

누군가에게는 어렵고 누군가에게는 그렇지 않습니다. 하지만 이제 모든 것은 당신에게 달려 있습니다.

조언. 처음부터 시작하세요. 점진적으로 필요한 개체를 코드에 추가하고 출력을 확인합니다. tf를 변경할 때 또는 재컴파일 후에 로그에 삭제되지 않은 개체와 메모리 누수에 대한 메시지가 표시되면 수정합니다. 다음 - 모든 개체의 올바른 저장, 사용 및 삭제를 확인하여 기능을 다시 추가합니다. new로 생성하는 경우 직접 삭제해야 합니다.

 
Konstantin Nikitin :

당신은 우연히 매 틱마다 새로운 객체를 생성하지 않습니다. 물론 이런 식으로도 가능 하지만(나의 경우 항상 합리적이지는 않음) 객체 작업이 끝난 직후에 날려버리는 것이 더 합리적일 것입니다. 이것이 생각나는 유일한 설명입니다.

모든 촛불에.

 
Juer :

모든 촛불에.

글쎄, 이전 개체가 필요하지 않다면 즉시 삭제해야 합니다.

 
Konstantin Nikitin :

글쎄, 이전 개체가 필요하지 않다면 즉시 삭제해야 합니다.

네, 그게 요점입니다. 그래서 모든 것이 혼란스럽고 객체가 다른 객체에 있으며 이미 삭제하기가 쉽지 않습니다. 일부 객체는 다른 객체에 의존하고, 객체는 첫 번째 객체에 의존하는 세 번째 객체에 의존합니다. :)

인생은 너무 힘들다 :(

 
Juer :

네, 그게 요점입니다. 그래서 모든 것이 혼란스럽고 객체가 다른 객체에 있으며 이미 삭제하기가 쉽지 않습니다. 일부 객체는 다른 객체에 의존하고, 객체는 첫 번째 객체에 의존하는 세 번째 객체에 의존합니다. :)

인생은 너무 힘들다 :(

에크, 당신은 모든 것을 잘못 알고 있습니다. 작업의 부적절한 계획은 그러한 결과를 초래할 뿐입니다.

클래스에서 객체가 생성되면 작업이 끝나면 소멸자에서 객체를 삭제해야 합니다. 다른 클래스는 객체에 대한 포인터를 받기 전에 유효성을 확인해야 합니다. 그리고 원칙적으로 그런 얽힌 관계는 있어서는 안 됩니다. 어떤 종류의 공이 짜여져 있었습니다. 어렵다는 것은 품질을 의미하지 않습니다. 모든 것이 투명하고 추적 가능해야 합니다. 우선, 당신을 위해.