Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 프로그래밍의 일반적인 정의되지 않은 동작


다음은 C++ 프로그래밍에서 정의되지 않은 동작의 가장 일반적인 원인입니다. 이 모든 것은 정의되지 않은 동작을 일으키기 위해 표준에 명시되어 있으며 프로그램을 작성할 때 어떤 희생을 치르더라도 피해야 합니다.

  • 부호 있는 정수 오버플로
  • NULL 포인터 역참조, 크기 0의 "새" 할당에 의해 반환된 포인터, 아직 확실히 초기화되지 않은 포인터, 배열 끝 너머의 위치에 있는 포인터.
  • 범위를 벗어나거나 삭제된 개체에 대한 포인터 사용
  • 배열의 경계를 벗어나는 결과를 산출하는 포인터 산술 수행
  • 호환되지 않는 유형의 개체에 대한 포인터 변환
  • 음수 오프셋에서 객체 또는 배열 읽기 또는 쓰기
  • 생성자 또는 소멸자에서 객체의 순수 가상 함수에 대한 가상 함수 호출 수행
  • 값을 반환하는 함수에서 값을 반환하지 않음