본문 바로가기

c++ 메모리할당4

C++ 29 [스마트 포인터] https://learn.microsoft.com/ko-kr/cpp/cpp/smart-pointers-modern-cpp?view=msvc-170 스마트 포인터(최신 C++) 자세한 정보: 스마트 포인터(최신 C++) learn.microsoft.com ▣ 스마트포인터 : C++11 버전 이후부터 새로운 스마트포인터 제공 ▣ 스마트포인터 : 메모리 할당 시 따로 delete를 사용하지 않아도 메모리 자동해제 ▣ 스마트포인터 종류 ▣ unique_ptr : 하나의 객체에 하나의 포인터만 소유권을 가질 수 있는 스마트포인터 ▣ shared_ptr : 하나의 객체가 참조하는 스마트 포인터가 총 몇 개인지를 참조하는 스마트포인터 ▣ weak_ptr : shared_ptr 객체에 대한 접근은 가능하지만 메모리 소.. 2023. 5. 16.
C++ [배열메모리 할당] ▣ int *p = new int [num] == int 크기로 배열 메모리 할당, *p에 할당한 주소 대입 ▣ delete []p; == 사용한 메모리 반환(반환을 해야지 메모리 재사용 가능) ▣ int *p = (int*)malloc(sizeof(int)) * num); == sizeof() 함수는 메모리의 크기를 구하는 함수, int형 크기로 메모리 입력받은 수만큼 곱하여 메모리 할당, (int*) int형 포인터를 의미 강제형변환 ▣ free(p) == 사용한 메모리 반환(반환을 해야지 메모리 재사용 가능) 2023. 2. 8.
C++ 9장 [메모리 할당] ▣ 안녕하세요. 이번장에서는 메모리 할당에 대해 공부해보겠습니다. 메모리 할당은 프로그래밍에서 실행하는 동안 사용할 메모리 공간을 할당(배정, 몫을 나누는 것) 의미합니다. ▣ 그럼 왜 메모리 할당이 필요할까요? 우리가 프로그램을 만들 때 "내가 몇 기가짜리를 만들어야지"라고 계획을 하지 않습니다. 그렇게 계획을 하고 만들더라도 프로그램에 텍스트 입력 수, 이미지나 도형 크기 등등 메모리를 어느 정도 사용할지에 대한 부분을 모두 다 생각하며 제작하는 건 불가능합니다. 그렇기 때문에 프로그램을 만들고 실행 중 내가 필요한 메모리를 할당받고 필요 없을 때 반환하는 메모리 할당을 진행해야 합니다. 그럼 이제 코드를 작성하며 공부하겠습니다. ▣ int* p = (int*) malloc(sizeof(int)) 이.. 2022. 10. 26.
C++ [메모리 할당, new, delete] ▣ 이번장에서는 c++에서 메모리 할당하는 코드를 공부해보겠습니다. c언어에서 malloc()함수와 free() 함수를 모르시는 분은 c언어 코드 예제를 참고해주세요. ▣ 우리가 힙영역에서 메모리를 직접 할당하려면 우선 int *p 포인터를 사용해야 합니다. 포인터는 주소를 저장하는 변수입니다. 그리고 내가 원하는 크기만큼 메모리를 할당하려면 c언어에서는 int *p = malloc(크기)로 할당해서 사용했습니다. 하지만 c++에서는 더 직관적으로 간결하게 new 키워드를 사용하여 할당합니다. int *p = new int; 이렇게 하게 되면 int 크기로 4byte를 할당할 수 있습니다. ▣ 그렇게 하고 cout으로 sizeof() 함수를 이용하여 메모리에 크기와 주소 그리고 값을 출력하면 우리가 할당.. 2021. 5. 23.