[C] 구조체 3. 여러형태, 열거형(enum), 구조체 동적할당

Sireal·2022년 1월 6일
0

C

목록 보기
8/12

구조체 안의 구조체

  • 구조체 내에 구조체가 있는 형태
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;
    • A.member == ~~;
  • struct a { } A[n];
    • A[0].member = ~~;

초기화

  • 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];
    • A[0] = { 1,2,3,4 ... };

열거형(Enum)

  • 변수들을 정수형 숫자로 변환하여 사용하는 것

형태

  • 기본형태 : 변수들이 0부터 차례로 값을 받음
enum  = { RED, BLUE, WHITE, BLACK }; // RED = 0, BLUE = 1 ... BLACK = 3
  • 변형 1 : 바뀐 수 부터 차례로 값을 받음
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);

참고

profile
🚄계속 앞으로🚄

0개의 댓글