(이 질문은 Is compound if checking for null and then other condition in C always safe?의 정확한 사본이지만 약 C++이 아니고 C가 아닙니다. 더 구체적으로 질문해야 함).null을 확인한 후 C++의 다른 조건이 항상 안전하면 복합 항목입니까?
많은 시간 동안 다음 유형의 if
상태를 사용하고 있습니다. ptr != NULL
에 그것은 의존
char* ptr = ...;
if (ptr != NULL && ptr[0] != '\0') // <=== is this always safe?
{ /* ... */ }
은 ptr[0] !='\0'
전에 확인된다.
모든 표준, 컴파일러, 아키텍처에서 안전합니까? 또는 ptr != NULL
전에 ptr[0] != '\0'
이 확인 될 가능성이 있습니까?
다시 게시 해 주셔서 감사합니다. 그것이 올바른 일이었습니다 (별도의 언어). 그러나이 질문은 이미 과거 여러 번 요청되었습니다. :) –
@LightnessRacesinOrbit 예, 가까운 제안을 보았습니다. 사실입니다. 그것은 같은 질문입니다. 닫히면 괜찮습니다. 나는 그것을 삭제하지 않을 것이다, 그것은 동일한 문제를 바꾸는 또 다른 방법이다. 그래서 그것은 더 많은 구글 안타를 끌 것이다. – Dariusz
네, 문제 없습니다. –