char* pChar = new Char[10];
if(pChar != nullptr)
{
..
return;
}
이와 같이 메모리를 할당하고 할당 여부를 체크하기 위한 널 포인터 검사를 통해 예외 처리를 한다.
new 연산자를 통한 메모리 할당이 실패할 경우는 예외가 발생하여 프로그램이 즉시 종료된다.
즉, null 포인터 체크로는 new 연산자에 대한 예외처리를 할 수 없다.
new 연산자가 메모리 할당에 실패한 경우에 나타나는 문제
int ea, workNum;
for(int j = 1; j <= ea; j++)
{
cin >> workNum;
node[i].push_back(workNum);
}
ea라는 변수를 선언하고 cin으로 받아야 하는데 받지 않아 초기화되지 않은 ea로 인해 ea에는 쓰레기 값이 들어가게 되고 이로 인해 node라는 벡터에 계속해서 값들이 push_back 되어 힙 메모리 부족 현상이 발생했다.