구조체 안의 구조체
struct b{
struct a A;
};
struct a{
int data;
};
...
struct b B;
B.A.data = 3; // 이런식으로 사용한다.
구조체를 리턴하는 함수
struct AA{
int i;
};
struct AA function(int k){
struct AA A;
A.i = k;
return A;
}
구조체 변수의 정의 방법
선언
- struct a { };
- struct a A;
- A.memeber = ~~;
- struct a { } A;
- struct a { } A[n];
초기화
- struct a { int data1; int data2, ...};
- struct a A = { 1, 2, 3 ...};
- struct a { int data1; int data2, ...} A;
- A = {1, 2, 3, 4 ... }; // 이렇게도 !
- struct a { int data1; int data2, ... } A[n];
열거형(Enum)
형태
- 기본형태 : 변수들이 0부터 차례로 값을 받음
enum = { RED, BLUE, WHITE, BLACK }; // RED = 0, BLUE = 1 ... BLACK = 3
enum = { RED = 3, BLUE, WHITE, BLACK }; // RED = 3, BLUE = 4 ... BLACK = 6
- 변형 2 : 중간에 값이 바뀌어도 바뀐수 부터 차례로 값을 받음.
enum = { RED = 3, BLUE, WHITE =3 , BLACK }; // RED = 3, BLUE = 4, WHITE = 3, BLACK = 4
구조체 동적할당(malloc)
- malloc(), free()를 활용하여 메모리 동적할당을 한다.
#include <stdlib.h>
sturct Something{ ... };
...
struct Something *arr;
int size;
...
//동적할당하기
arr = (struct Something *)malloc(sizeof(struct Something) * size));
...
// 동적할당해제
free(arr);
참고