[C++] 구조체 변수의 동적할당과 해제

2022. 6. 7. 19:12코딩 1막 <C++개념편>/코딩 1막 <C++응용편>

728x90

#include <iostream>

using namespace std;

struct Student
{
	string name;
	int id;
	int age;

	Student()
	{
		cout << "기본 생성자 호출" << endl;
		name = "-";
		id = 0;
		age = 0;
	}

	Student(string _name, float _id, float _age)
	{
		SetInfo(_name, _id, _age);
		cout << name << " 생성자 호출" << endl;
	}

	~Student()
	{
		cout << name << " 소멸자 호출" << endl;
	}

	void printInfo()
	{
		cout << name << endl;
		cout << id << endl;
		cout << age << endl;
	}

	void SetInfo(string _name, float _id, float _age)
	{
		name = _name;
		id = _id;
		age = _age;
	}
};

Student studentC("C", 1, 1);				// 데이터영역

void main()
{
	Student studentA("A", 2, 2);			// 스택영역
	Student studentB("B", 3, 3);			// 스택영역
	Student* studentPtr;					// 스택영역
	studentPtr = new Student("Heap", 4, 4);	// 힙영역

	delete studentPtr;						// delete를 쓰지 않으면 '메모리 누수' 발생

}

출력 결과

728x90