conststring text[] = { "ABC", "", "ABC" };
uchar array[];
int start = 0;
int n = 0;
for(int i=0; i < ArraySize(text); i++)
{
constint count = StringLen(text[i])+1;
Print(count);
n += StringToCharArray(text[i], array, start, count);
start += count;
}
Print(ArraySize(array), ":", n );
2021.05.2422:56:35.959 Test (AUDUSD,M5) 42021.05.2422:56:35.959 Test (AUDUSD,M5) 12021.05.2422:56:35.959 Test (AUDUSD,M5) 42021.05.2422:56:35.959 Test (AUDUSD,M5) 9:9
초기화된 경우 왜 실행 시
오류 4009 발생
ERR_NOTINITIALIZED_STRING
4009
초기화되지 않은 문자열
이것은 용어의 문제입니다.
문제는 이것에 있는 것이 아니라 이 코드가 4를 반환하지만 0을 반환해야 한다는 사실에 있습니다.
이는 -1과 0이 동일한 결과를 갖는다는 것을 의미합니다. 같은 결과는 아마도 INT_MAX 와 다른 것을 줄 것입니다.
일반 기능의 일부 기능을 알고/배우는 것은 정상입니다.
일반 기능의 일부 기능을 알고/배우는 것은 정상입니다.틀림없이. 특히 기능이 버그인 경우))
글쎄, " mql5 언어의 특징 ..." 브랜치에 명확하게 추가하십시오.
이는 -1과 0이 동일한 결과를 갖는다는 것을 의미합니다.
당신의 의견이 논리적이고 옳다면 나에게 이것은 당신의 논리의 논리에 대해 생각할 기회입니다
틀림없이. 특히 기능이 버그인 경우))
글쎄, " mql5 언어의 특징 ..." 브랜치에 명확하게 추가하십시오.
문서를 약간 수정하면 더 이상 버그가 아닙니다.
당신의 의견이 논리적이고 옳다면 나에게 이것은 당신의 논리의 논리에 대해 생각할 기회입니다
철학은 실천과 거리가 멀다.
+1은 깨끗한 사본(뒤에 널 문자 없음)이 필요하므로 필요하지 않습니다. 이것이 버그가 아님을 증명하려면 인수가 필요합니다.
깨끗한 사본 필요(후행 null 문자 없음)
이것은 매우 수염이 있는 디자인입니다.
추신
문서를 약간 수정하면 더 이상 버그가 아닙니다.
철학은 실천과 거리가 멀다.
그리고 실천가는 이론가들에게 그러한 모순된 결과를 어떻게 설명합니까?
결과: 4:0
예상: 0:0
또는 - 문서를 약간 수정하시겠습니까? 글쎄, 결국 버그를 수정하지 마십시오!
내 설명은 간단합니다. 이러한 일반 기능 중 하나에 버그가 있습니다.
그리고 실무자는 이론가들에게 그러한 결과를 어떻게 설명합니까?
내 설명은 간단합니다. 이 기능 중 하나에 버그가 있습니다.
버그는 결과가 아니라 이 두 함수 간의 불일치입니다. count=0일 때 무엇을 출력할지 문서화하는 문제일 뿐입니다.