Brise

[C++ 기본 2] 2. memory allocation 본문

프로그램/C,C++

[C++ 기본 2] 2. memory allocation

naudhizb 2022. 1. 29. 23:39
반응형
// 2_메모리할당 - 52 page
#include <iostream>
//            malloc             new
//          함수                 연산자
//            void* 반환         정확한 타입으로 반환
//            free 해지         delete 해지
//            생성자 호출안됨     생성자 호출
//            실패시 0반환         실패시 예외 발생
int main()
{
    // C 스타일
    int* p = (int*)malloc(sizeof(int) * 20);
    free(p);

    // C++ 스타일
    int* p2 = new int;
    delete p2;

    int* p3 = new int[20]; // 배열로 할당
    delete[] p3;    // delete 가 아니라 delete[] 로 반환
    //delete p3;  // undefined(미정의 동작) 발생
}

객체 지향 언어인 C++에서는 malloc 뿐만 아니라 new로 동적 메모리 할당을 수행할 수 있다. malloc은 free로, new는 delete로 해제할 수 있으면 new의 경우 생성자를 호출하고 실패시 예외를 발생시킨다.

반응형

'프로그램 > C,C++' 카테고리의 다른 글

[C++ 기본2] 5. OOP(Stack example)  (0) 2022.02.24
[C++ 기본 2] 4. OOP(Object Oriented Programming)  (0) 2022.02.23
[C++ 기본 2] 3. example(reference, template)  (0) 2022.01.29
[C++ 기본 2] 1. reference  (0) 2022.01.29
[C++ 기본] 11. nullptr  (0) 2022.01.29
[C++ 기본] 10. Casting  (0) 2022.01.29
[C++ 기본] 9. 제어문  (0) 2022.01.29
Comments