플로렌스라는 개발자

C++ new 연산자 사용시 예외 처리

C++에서 new 연산자를 사용할 때 일어나는 메모리 할당 문제를 해결하는 두 가지 방법을 제공합니다. 메모리 할당 문제가 발생할경우 널 포인터를 리턴 new가 bad_alloc 예외를 발생시킴 bad_alloc 예외 방식 #include #include struct Temp { double a[90000]; long b[90000]; }; int main(void) { Temp * temp; try { temp = new Temp(); } catch (std::bad_alloc & ba) { std::cout

프로그래밍/C++ 2019.11.01 Plorence

C++ new 연산자와 delete 연산자

new, delete연산자는 동적 할당과 해제에 연관되어 있으며 C++에서 제공하는 방법입니다. C언어에서는 malloc함수와 free함수를 통해서 동적 할당과 해제가 가능했었습니다. 동적 할당의 필요성 동적 할당은 미리 할당할 필요도 없으며, 원하는 크기를 정확히 할당이 가능하므로 쓸모없는 크기를 잡아먹지 않게 됩니다. 만약 계속 문자열을 입력받고 계산해야하는데 입력받은 문자열의 크기는 10~10000이라고 가정합시다. 동적 할당을 하지 않을 경우 정적 할당(지역변수)으로 최대 문자열의 크기인 10000을 잡고 미리 할당해야 합니다.(이런 경우 입력 문자열이 10이라면 필요 없는 메모리 공간이 9990이나 됩니다.) 하지만 동적할당은 입력받은 문자열의 크기를 구해서, 그 크기만큼 동적 할당하게 되면 필..

프로그래밍/C++ 2019.10.17 Plorence