728x90
반응형
Code 1
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#define SIZE 20
using namespace std;
int main() {
char animal[SIZE];
char* ps;
cout << "동물 이름을 입력하십시오.\n";
cin >> animal;
ps = new char[strlen(animal) + 1]; // 입력한 문자열 + 1 크기. 실행 시간에 배열 크기 결정.
strcpy(ps, animal); // 문자열 복사
cout << "입력하신 동물 이름을 복사하였습니다." << endl;
cout << "입력하신 동물 이름은 " << animal << "이고, 그 주소는 " << (int*)animal << " 입니다." << endl;
cout << "복사된 동물 이름은 " << ps << "이고, 그 주소는 " << (int*)ps << " 입니다." << endl;
delete[] ps;
return 0;
}
결과
더보기
동물 이름을 입력하십시오.
Dog
입력하신 동물 이름을 복사하였습니다.
입력하신 동물 이름은 Dog이고, 그 주소는 000000FAA7B0F9A8 입니다.
복사된 동물 이름은 Dog이고, 그 주소는 0000028CEB746F50 입니다.
동적 메모리를 사용하므로, 사용자 입력으로 데이터를 받을 때 메모리를 결정할 수 있다.
animal에 입력된 동물(Dog)을 ps에 복사하는 과정이다. 두 변수의 주소가 다른 것을 확인할 수 있다.
Code 2
#include <iostream>
#define SIZE 20
using namespace std;
struct MyStruct
{
char name[20];
int age;
};
int main() {
MyStruct* temp = new MyStruct;
cout << "당신의 이름을 입력하십시오.\n";
cin >> temp->name;
cout << "당신의 나이를 입력하십시오.\n";
cin >> (*temp).age; //'->'와 같은 의미
cout << "안녕하세요! " << temp->name << "씨!\n";
cout << "당신은 " << temp->age << "살 이군요!\n";
delete temp;
return 0;
}
결과
더보기
당신의 이름을 입력하십시오.
리미
당신의 나이를 입력하십시오.
29
안녕하세요! 리미씨!
당신은 29살 이군요!
정적 구조체 멤버 연산자 : .
동적 구조체 멤버 연산자 : ->
->는 (*변수).멤버와 같은 의미이다.
728x90
반응형
'Software > C++' 카테고리의 다른 글
[C++ 기초] 15. 조건문 (1) | 2023.03.24 |
---|---|
[C++ 기초] 14. 반복문 (0) | 2023.03.23 |
[C++ 기초] 12. new 연산자와 delete 연산자 (0) | 2023.03.20 |
[C++ 기초] 11. 포인터 기초 (0) | 2023.03.20 |
[C++ 기초] 10. 공용체(Union)와 열거체(Enum) (1) | 2023.03.12 |
댓글