C++에는 정의되지 않은 몇 가지 동작이 있습니다. 이들은 C++에서 몇 가지 작업을 수행하여 식별됩니다. 그러한 직접적인 정의는 없습니다. 다른 목적으로 C++를 사용하려는 모든 프로그래머는 이 몇 가지 사항을 알고 있어야 합니다.
여기에서 몇 가지 C++ 코드를 볼 수 있습니다. 그리고 결과를 추측해 보세요. 코드는 일부 런타임 오류를 생성합니다.
0으로 나누기 오류가 정의되지 않았습니다.
예시 코드
#include네임스페이스 std;int main() { int x =10, y =0; 정수 z =x / y; cout <<"완료" < 출력
0으로 나누기 작업에 대한 런타임 오류초기화되지 않은 변수를 사용하려고 합니다.
예시 코드
#include네임스페이스 std;int main() { bool x; if(x ==참) cout <<"참값"; else cout <<"거짓 값";} 출력
거짓 값(컴파일러마다 다를 수 있음)널 포인터 값에 액세스하려고 합니다.
예시 코드
#include네임스페이스 사용 std;int main() { int *ptr =NULL; cout <<"포인터 값:" <<*ptr;} 출력
널 포인터 값에 접근하기 위한 런타임 오류널 포인터 값에 액세스하려고 합니다.
예시 코드
#include네임스페이스 std;int main() { int array[10]; for(int i =0; i<=10; i++) { cout <<배열[i] < 출력
한계를 벗어난 항목에 액세스하는 동안 런타임 오류가 발생했습니다. 일부 컴파일러는 임의의 값을 반환할 수 있으며 오류는 반환하지 않을 수 있습니다.예시 코드
#include네임스페이스 std;int main() { int x =INT_MAX; cout <<"x + 1:" < 출력
x + 1:-2147483648signed int의 최소 수로 순환문자열 리터럴에서 일부 문자를 변경하려고 합니다.
예시 코드
#include네임스페이스 std;int main() { char *str ="Hello World"; str[2] ='x'; cout < 출력
일부 상수 변수의 값을 변경하려고 하기 때문에 런타임 오류가 발생합니다.