21
C Study 04 Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected]) 구조체, 동적할당

C 언어 스터디 04 - 구조체, 동적할당

Embed Size (px)

Citation preview

Page 1: C 언어 스터디 04 - 구조체, 동적할당

C Study 04

Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected])

구조체, 동적할당

Page 2: C 언어 스터디 04 - 구조체, 동적할당

• 구조체

•동적할당

Page 3: C 언어 스터디 04 - 구조체, 동적할당

구조체

• 이름, 학번, 성별, 전화번호를 저장할 때 어떻게 저장해야

효율적일까?

Page 4: C 언어 스터디 04 - 구조체, 동적할당

구조체

• 여러 자료 형을 하나로 관리 가능

Page 5: C 언어 스터디 04 - 구조체, 동적할당

구조체

• 구조체 정의

struct xyz{

int x;int y;int z;

};

strcut person{

char name[10];int age;int height;

};

Page 6: C 언어 스터디 04 - 구조체, 동적할당

구조체

• 구조체 선언 & 사용

int main(){

struct person per1 = {“유용우”, 20, 184};

printf(“name : %s\n”, per1.name);printf(“age : %d\n”, per1.age);printf(“weight : %d\n”, per1.height);….….

}

Page 7: C 언어 스터디 04 - 구조체, 동적할당

예제 - 1

Page 8: C 언어 스터디 04 - 구조체, 동적할당

예제 - 2

Page 9: C 언어 스터디 04 - 구조체, 동적할당

예제 - 3

Page 10: C 언어 스터디 04 - 구조체, 동적할당

실습 - 1

• typedef 를 사용해 책에 대한 정보를 저장하는 구조체

BOOK을 정의하시오. 책 제목, 저자, 출판사, 가격이

구조체로 정의 되어야 한다.

• 정의한 구조체 BOOK을 사용하여 data[] 구조체 배열을

선언하고 사용자로 부터 값을 입력 받는 insertBook()을

작성. insertBook()은 구조체 포인터를 매개변수로 받는다.

• BOOK 구조체의 데이터를 출력하는 printBooks() 함수를

작성. 마찬가지로 매개변수는 구조체 포인터

Page 11: C 언어 스터디 04 - 구조체, 동적할당

실습 - 1

Page 12: C 언어 스터디 04 - 구조체, 동적할당

동적할당

• Heap 영역은 언제 사용할까?

Page 13: C 언어 스터디 04 - 구조체, 동적할당

동적할당

int value[];

int val;

printf(“학생 수 입력 : “);

scanf(“%d”, &val);

int value[val];

Page 14: C 언어 스터디 04 - 구조체, 동적할당

동적할당

• 동적할당 함수

• malloc

• void* malloc(size_t size)

Page 15: C 언어 스터디 04 - 구조체, 동적할당

예제 - 4

Page 16: C 언어 스터디 04 - 구조체, 동적할당

예제 - 5

Page 17: C 언어 스터디 04 - 구조체, 동적할당

예제 - 6

• 2차원 배열을 동적할당 하려면?

Page 18: C 언어 스터디 04 - 구조체, 동적할당

실습 - 2

• 실습 - 1 에서 새로운 데이터를 입력할 때 마다 구조체를

동적할당 받게 보완

Page 19: C 언어 스터디 04 - 구조체, 동적할당

과제

• 스터디 시간에 한 실습

•struct member alignment에 대해 조사하고 예제 만들어

확인해 보기

Page 20: C 언어 스터디 04 - 구조체, 동적할당

과제

•구조체 동적할당을 이용해보자. 학생 n명의 수강신청을

받고자 한다. 과목은 임의로 초기화 혹은 입력 받을 수 있다.

과목은 4개, 즉 구조체 안의 변수는 4개가 되어야 한다.

학생 n명의 과목을 출력해보자.

Page 21: C 언어 스터디 04 - 구조체, 동적할당

과제

• linked list에 대해 공부하고 이를 이용해 주소록 만들기