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

 
Andrei Trukhanovich :

count=0은 count=-1과 동일하게 작동하고 ""의 경우 터미널 null을 복사하는 것처럼 보입니다.

이것은 오류이며 일반적인 경우 에 실제적인 예에 간단히 표시됩니다.   빈 문자열일 수 있고 count = 0 자체일 수 있습니다(예: 루프에서)

 
A100 :

그리고 얼마나 많은

count = 0일 때 문자를 복사해야 합니까?

힌트: count = 3개 3자

논쟁도 하지 않겠습니다. 올바르게 작동합니다.

안드레이 트루하노비치 :

count=0은 count=-1과 같은 방식으로 작동하는 것으로 보이며 ""의 경우 터미널 0을 복사하므로 추가 확인 없이는 빈 문자열이 정상적으로 변환되지 않습니다.

빈 문자열(NULL)에는 터미널 null이 포함되지 않습니다. 제 생각에는 모든 것이 논리적으로 작동합니다.

 
fxsaber :

논쟁도 하지 않겠습니다. 올바르게 작동합니다.

인수가 없으면 물론 필요하지 않습니다.

fxsaber :

빈 문자열(NULL)에는 터미널 0이 포함되지 않습니다. 제 생각에는 모든 것이 논리적으로 작동합니다.

빈 문자열은 ""이고 NULL은 빈 문자열이 아닙니다. 즉, 초기화되지 않은 문자열입니다. 문자열이 아니며 NULL이 있는 StringToCharArray 가 작동하지 않습니다. 오류 결과: 4009

 
A100 :

인수가 없으면 물론 필요하지 않습니다.

빈 문자열은 ""이고 NULL은 빈 문자열이 아닙니다. 즉, 초기화되지 않은 문자열입니다. 문자열이 아니며 NULL이 있는 StringToCharArray 가 작동하지 않습니다. 오류 결과: 4009

당신은 그것을 가볍게 생각하는 것이 잘못되었습니다.

 
fxsaber :

당신은 그것을 가볍게 생각하는 것이 잘못되었습니다.

문제의 장점에 대해 하실 말씀이 있으면 설명해 주십시오.

 
A100 :

문제의 장점에 대해 하실 말씀이 있으면 설명해 주십시오.

 string Str = NULL ;

Print (Str == "" );
 
fxsaber :

결과: 거짓

그리고 이 진술의 모순은 무엇입니까?

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

A100 , 2021.05.24 20:07

빈 문자열은 ""이고 NULL은 빈 문자열이 아닙니다. 즉, 초기화되지 않은 문자열입니다 . 문자열이 아니며 NULL이 있는 StringToCharArray 가 작동하지 않습니다. 오류 결과: 4009


 
A100 :

결과: 거짓

그리고 이 진술의 모순은 무엇입니까?

변수가 초기화됩니다. 물론 string을 string의 내부 클래스에 대한 포인터로 생각할 수 있습니다.

 
fxsaber :

변수가 초기화됩니다. 물론 string을 string의 내부 클래스에 대한 포인터로 생각할 수 있습니다.

초기화된 경우 왜 실행 시

 void OnStart ()
{
     uchar array[];
     const string text = NULL ;
     StringToCharArray ( text, array );
     Print ( GetLastError ());
}

오류 4009 발생

ERR_NOTINITIALIZED_STRING

4009

초기화되지 않은 문자열

 
fxsaber :

논쟁도 하지 않겠습니다. 올바르게 작동합니다.

빈 문자열(NULL)에는 터미널 0이 포함되지 않습니다. 제 생각에는 모든 것이 논리적으로 작동합니다.


문제는 이것에 있는 것이 아니라 이 코드가 4를 반환하지만 0을 반환해야 한다는 사실에 있습니다.

 Print ( StringToCharArray ( "ABC" , array, 0 , 0 ));