«undefined-behavior» 태그된 질문

컴파일러, 인터프리터 또는 런타임 시스템이 강요 할 필요가없는 언어의 규칙을 위반하는 프로그램을 컴파일하거나 실행하면 예기치 않은 결과가 발생합니다. "정의되지 않은"데이터 유형 또는 리턴 값에 관한 질문에이 태그를 사용하지 마십시오. 이 경우 [정의되지 않은] 태그를 대신 사용해야합니다.

1
매우 간단한 코드의“잘못된 하드웨어 명령”
모호한 주장을 조사 하면서이 작은 테스트 프로그램을 작성했습니다noway.c int proveit() { unsigned int n = 0; while (1) n++; return 0; } int main() { proveit(); return 0; } 이것을 테스트하면 다음을 얻습니다. $ clang -O noway.c $ ./a.out zsh: illegal hardware instruction ./a.out 왓. 최적화없이 컴파일하면 예상대로 중단됩니다. 나는 …

2
유효하지 않은 포인터를 생성하는 함수 참조를 캐스트?
타사 코드에서 오류를 추적하고 있으며 그 줄을 따라 무언가를 좁혔습니다. use libc::c_void; pub unsafe fn foo() {} fn main() { let ptr = &foo as *const _ as *const c_void; println!("{:x}", ptr as usize); } 안정적인 1.38.0을 실행하면 함수 포인터가 인쇄되지만 베타 (1.39.0-beta.6) 및 야간 반환 '1'이 표시됩니다. ( 운동장 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.