Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] 타입 변환 #3 본문
#include <iostream>
using namespace std;
class Item
{
public:
Item()
{
cout << "Item()" << endl;
}
Item(const Item& item)
{
cout << "Item(const Item&)" << endl;
}
~Item()
{
cout << "~Item()" << endl;
}
public:
int _itemType = 0;
int _itemDbld = 0;
char _dummy[4096] = {}; // 용량이 커진 클래스를 표현하기 위한 더미 데이터
};
void TestItem(Item item)
{
}
void TestItemPtr(Item* item)
{
}
int main()
{
// 복습
{
// Stack [ type(4 byte) dbid(4 byte) dummy(4096 byte) ]
Item item;
// Stack [ 주소(4~8 byte) ] -> Heap [ type(4 byte) dbid(4 byte) dummy(4096 byte) ]
Item* item2 = new Item();
TestItem(item);
TestItem(*item2);
TestItemPtr(&item);
TestItemPtr(item2);
// 메모리 누수 (Memory Leak) -> 점점 가용 메모리가 줄어들어서 Crash 발생
delete item2;
// 배열
{
cout << "------------------------------------" << endl;
// 스택 메모리에 아이템 자체가 100개 올라가 있는 배열
Item item3[100] = {};
cout << "------------------------------------" << endl;
// 배열 자체에는 주소값만 100개 들어가 있고, 실제 아이템 자체는 하나도 없을 수 있음.
Item* item4[100] = {};
for (int i = 0; i < 100; i++)
item4[i] = new Item();
cout << "------------------------------------" << endl;
for (int i = 0; i < 100; i++)
delete item4[i];
cout << "------------------------------------" << endl;
}
}
return 0;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] 얕은 복사 VS 깊은 복사 #1~2 (0) | 2023.02.28 |
---|---|
[C++] 타입 변환 #4~5 (0) | 2023.02.15 |
[C++] 타입 변환 #1~2 (0) | 2023.02.13 |
[C++] 동적할당 #3 (0) | 2023.02.08 |
[C++] 동적할당 #2 (0) | 2023.02.01 |