- 포인트 변수
- 선언
- int *p;
- p = (int*) malloc([size_int]); // cstyle
- p = new [data_type] // cppstyle
// 동적할당, 할당된 변수의 주소를 리턴
- 해제
- free([var]); // cstyle
- delete [var] // cppstyle
// 동적할당 해제
- 선언
- 배열
- 선언
- variable = new data_type[size];
- ex ) p = new int[3];
- variable = new data_type[size];
- 해제
- delete []p;
- 선언
auto arrayIntTest = []() {
/*
* 작성일자 : 23.12.18
* 이슈사항 : inner function 을 표현하려함, 그러나 아직 사용법을 정확히 모름
* 사용방법 : auto function_name = []() { } 을 사용
* 참고사이트 : https://stackoverflow.com/questions/4324763/can-we-have-functions-inside-functions-in-c
*/
int* ptr;
ptr = new int[3];
for (int i = 0; i < 3; i++) {
ptr[i] = i;
cout << ptr[i] << endl;; // 데이터 출력
// cin >> p[i]; // 데이터 입력
}
delete[] ptr; // 할당해제
};
arrayIntTest();
auto arrayStringTest = []() {
char *ptr;
ptr = new char[5];
strcpy_s(ptr,5,"TEST");
cout << ptr << endl;
for (int i = 0; i < 4; i++) {
cout << ptr[i] << endl;
}
delete []ptr;
};
arrayStringTest();
- 구조체
- 선언
- struct struct_name { data_type name; data_type name; };
- ex ) struct Test { int intValue; char charValue; };
- struct struct_name { data_type name; data_type name; };
- 해제
- delete p;
- array일 경우 delete []p;
- 선언
auto structTest = []() {
struct Test {
int intValue;
char charValue;
};
Test* ptr;
ptr = new Test[5];
ptr->intValue = 5, ptr->charValue = 'A'; // 데이터 저장
/*
* 작성일자 : 23.12.21
* 이슈사항 : "" 사용시 에러?
* 해결방안 : ptr->intValue = 5, ptr->charValue = "A"
* -> ptr->intValue = 5, ptr->charValue = 'A'
* 추가내용 : 확실치는 않아도 깨닫게 된 내용을 정리하자면
"[data_type char]"는 const char를 인식된다.
* 그러므로 값을 변경하려는 경우 '' 를 사용해야할것 같다.
*/
cout << ptr->intValue << ", " << ptr->charValue << endl; // 데이터 출력
// cin >> ptr->intValue >> ptr->charValue; // 데이터 입력(cin)
for (int i = 0; i < 5; i++) {
ptr[i].intValue = i, ptr[i].charValue = 'A' + i;
cout << ptr[i].intValue << ", " << ptr[i].charValue << endl;
}
// delete []ptr;
};
structTest();
'C++ > 기초' 카테고리의 다른 글
[C++] 클래스(Class), 객체 지향 프로그램(Object Oriented Programming) (1) | 2023.12.21 |
---|---|
[C++] 문자열 (1) | 2023.12.19 |
[C++] 래퍼런스(Reference) 변수, 포인터(Pointer) 변수 (0) | 2023.12.15 |
[C++] bool 자료형 (0) | 2023.12.14 |
[C++] 오버로딩, 디폴트 매개변수, 초기화 (0) | 2023.12.14 |