포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 264

 
그리고 모든 것이 그렇습니다. 배열의 크기가 미리 설정되어 있지 않다면 반드시 ArrayResize로 설정해야 합니다. 그리고 액션이 끝나면 ArrayResize(array, 0); 예, 이것은 주제에 있습니다, 나는 그것에 대해 생각한 적이 없습니다 ........... 고려하겠습니다 ....... 감사합니다)))))
 
매 틱마다 ArrayResize를 수행하는 것은 불가능합니다 !!!!!!!! 그렇지 않으면 계산에 갇히게 됩니다 ........... 그리고 멀티 코어 프로세서는 저장하지 않습니다 ........
 
2013년 11월 11일 오전 7시 54분에 게시된 기사 "ShowCandleSize"가 잘못 표시되고 알 수 없는 이유로 편집할 수 없습니다.
11월 15일에 이 질문으로 noreply@metaquotes.net으로 지원 서비스에 문의했지만 응답을 받지 못했습니다.
이 질문에 대한 정확한 주소를 알려주세요.
감사합니다.
--
블라디슬라프 슈르킨,
2013년 11월 20일.
 
artmedia70 :
마감된 거래의 모든 결과는 계정 내역에서 볼 수 있습니다. 프로그래밍 방식으로. 그리고 끊임없이 그들과 함께 배열을 망치질하십시오 - 그것이 필요합니까? 많이 있을 수 있습니다. 그것 없이는 절대적으로 살 수 없다면 필요한 깊이로 자신을 제한하고 배열을 채우는 것이 좋습니다.

명확하게 해 주셔서 감사합니다!

"닫힌 거래의 모든 결과는 계정 기록에서 볼 수 있습니다. 프로그래밍 방식으로." - 어떤가요?
 
VladislavVG :


프로그램이 종료되면 메모리 누수를 방지하기 위해 동적으로 할당된 메모리를 해제해야 합니다. MKL 개발자가 이것을 따르고 있는지 모르겠습니다.



이러한 목적을 위해 어레이를 한 곳에서 수집한 다음 해제하기 위해 어레이를 정적으로 만듭니다. 프로그램 끝에 있는 ArrayResize (a,0)는 자기 만족을 위한 경우에만 의미가 없습니다.
 
Leo59 :
명확하게 해 주셔서 감사합니다!

"닫힌 거래의 모든 결과는 계정 기록에서 볼 수 있습니다. 프로그래밍 방식으로." - 어떤가요?

주문 선택(티켓,SELECT_BY_TICKET, MODE_HISTORY )

또는

주문 선택(i,SELECT_BY_POS,MODE_HISTORY)

 
alsu :

주문 선택(티켓,SELECT_BY_TICKET,MODE_HISTORY)

또는

주문 선택(i,SELECT_BY_POS,MODE_HISTORY)




고맙습니다!


그것이 Kovalev의 교과서의 좋은 점입니까? 제 생각에는 프로그램 코드의 간단한 예를 사용하여 간단한 문제를 해결하는 방법을 배웁니다.

사실 저는 Vladislav Goshkov의 지시자 코드를 예로 들며 프로그래밍을 배우기 시작했습니다. 나는 De-Mark에 따라 지지선과 저항선을 그렸습니다. 다음과 같은 줄이 있었습니다.
ObjectMove(buff_str, 1, UpBT[0], UpP[0]);
ObjectMove(buff_str, 0, UpBT[1], UpP[1]);
놓다. 테스터가 어떻게 작동하는지 살펴보기 시작했습니다. 광선은 프랙탈에 그려지지만 미래가 아닌 과거만 봅니다...))))). 나는 질문하기 시작했습니다 - 나는 그것을 알아 냈습니다! 블라디슬라프에게 경의를 표합니다!!!!
그때 코발레프의 교과서를 만났다. 이 프레젠테이션 형식의 질문에 대한 답변을 더 보려면 여기를 클릭하세요.

그리고 더.
"자신만의 Expert Advisor를 작성하고 싶은데 어디서부터 시작해야 할지 모르겠나요? Alpari 웹사이트에 Rosh의 기사가 등장하면 Expert Advisor를 만드는 첫 단계를 쉽고 간편하게 만들 수 있습니다.
Rosh는 간단하고 접근 가능한 방식으로 각 EA 작가가 겪는 단계에 대해 이야기합니다. 오랜 경험을 통해 얻은 지식인 프로그래밍의 많은 뉘앙스가 이제 모든 사람이 사용할 수 있습니다.
아주 기초적인 단계부터 시작 하여 Forex 프로그래밍의 복잡성을 이해하게 될 것입니다."

이 기사 리뷰를 읽을 수 있는 링크가 무엇인지 아십니까?
 
VladislavVG :


정확히 말하면 배열이 아니기 때문입니다. 더 자세한 내용을 원하시면 C 언어에 대한 설명을 참조하십시오 개발자가 처음부터 명확하지 않거나 불완전하게 언급된 모든 것에 대해서는 C 표준을 참조하라고 말했기 때문에 참조하지 않습니다.

그리고 "손가락 위"인 경우: 변수 선언 시 double buffer[]; 그런 다음 C에서 "포인터"라고 하는 하나의 변수에 대해 메모리가 할당되고, 이 변수는 정수 유형을 가지며 나중에 어레이가 시작될 메모리 셀의 주소 를 저장합니다. MCL을 사용하여 버퍼 변수의 차원을 확인하면 값이 0이 됩니다. 즉, 배열 자체에 할당된 메모리가 없으며 값을 할당하려고 하면 단순히 쓸 곳이 없습니다. : MCL에는 주소 산술이 없으며 포인터로 작업할 수 없습니다. C로 작성하는 것이 가능하지만 "할당되지 않은" 메모리를 사용하면 일반적으로 시스템 충돌이 발생합니다. AreaResize(array, N), (N>0)을 적용하면 배열(적어도 하나의 요소)에 메모리가 할당되고 값을 쓸 장소가 있습니다. 그런 다음 확인할 때 배열의 차원이 0과 다릅니다.

C 용어에서 정적 배열의 개념은 몇 가지 의미를 갖습니다.

1. 정적 배열(및 정적 변수/유형)은 컴파일 단계(MKL4용 사전 컴파일)에서 차원이 알려진 변수/배열입니다. 예를 들어, 이중 버프[10000]를 설명할 때; 컴파일러는 변수의 크기를 알려주고 즉시 메모리를 할당할 수 있습니다. 이 개념과 대조적으로 "동적 배열"이라는 개념이 있습니다. 즉, 컴파일 단계에서는 차원이 알려지지 않고 프로그램 실행 단계에서만 알려지게 되는 이러한 배열은 모두 변수의 배열입니다. 치수. 이러한 배열에 액세스할 때 먼저 메모리를 할당해야 합니다. 메모리는 프로그램 정적 메모리 외부에 할당됩니다.

C/C++에서 배열이 블록에 설명되면 가시성은 블록으로 제한됩니다(정적 배열이든 동적 배열이든). 로컬로 설명되는 동적 배열은 "메모리 누수"와 같은 프로그램의 오류와 관련이 있습니다. 이는 범위를 벗어나 메모리 포인터가 파괴되고 할당된 메모리가 계속 점유된 경우입니다.

2 정적 수정자로 설명된 변수로서의 "정적" 배열의 개념 - 이러한 변수는 블록 범위를 벗어날 때 파괴되지 않으며 별도의 메모리 영역에 위치하므로 값이 저장됩니다. 그들 안에. 메모리 누수 위험이 줄어듭니다. 1절의 의미에서 동적으로 선언된 배열(즉, 컴파일 단계에서 차원을 알 수 없는 배열)은 2절의 의미에서 정적일 수 있습니다. 즉, "정적" 수정자로 선언됩니다.

프로그램이 종료되면 메모리 누수를 방지하기 위해 동적으로 할당된 메모리를 해제해야 합니다. MKL의 개발자들이 이것을 따르고 있는지는 모르겠지만 그들의 프로그램에서는 항상 메모리를 확보합니다. - C의 습관 - ArrayResize(array, 0);

MKL에서 모든 배열은 항목 2의 의미에서 정적입니다.

이제 귀하의 질문에 대해: "정적 배열을 이중 버퍼[] 에 할당할 수 없는 이유는 무엇입니까?". 할당된 메모리가 없기 때문입니다(사실, 정적 수정자가 있는 동적 배열입니다). 값을 할당하기 전에 메모리를 할당해야 합니다. 즉, 0보다 큰 차원을 가진 ArrayResize를 이 배열에 적용해야 합니다. 어레이의 경우 할당된 메모리(어레이 외부)의 유출을 제어해야 합니다.

추신: 내가 분명히 했길 바랍니다. 최대한 간단하게 만들려고 노력했습니다.

"술을 마실 수 없다"!
감사해요!!!!!!!!
 
VladislavVG :

정확히 말하면 배열이 아니기 때문입니다. 더 자세한 내용을 원하시면 C 언어에 대한 설명을 참조하십시오 개발자가 처음부터 명확하지 않거나 불완전하게 언급된 모든 것에 대해서는 C 표준을 참조하라고 말했기 때문에 참조하지 않습니다.
........

정말 감사합니다. 눈이 뻑뻑해서 잠에서 깼지만 너무 즐겁게 읽었습니다. 다시 한 번 감사합니다.
 
Leo59 :


이 기사 리뷰를 읽을 수있는 링크가 무엇인지 알고 있습니까?


https://www.mql5.com/en/articles/mt4


아니, 더 이상 열리지 않습니다

사유: