Upload
yu-yongwoo
View
155
Download
6
Embed Size (px)
Citation preview
C Study 04
Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected])
구조체, 동적할당
• 구조체
•동적할당
구조체
• 이름, 학번, 성별, 전화번호를 저장할 때 어떻게 저장해야
효율적일까?
구조체
• 여러 자료 형을 하나로 관리 가능
구조체
• 구조체 정의
struct xyz{
int x;int y;int z;
};
strcut person{
char name[10];int age;int height;
};
구조체
• 구조체 선언 & 사용
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);….….
}
예제 - 1
예제 - 2
예제 - 3
실습 - 1
• typedef 를 사용해 책에 대한 정보를 저장하는 구조체
BOOK을 정의하시오. 책 제목, 저자, 출판사, 가격이
구조체로 정의 되어야 한다.
• 정의한 구조체 BOOK을 사용하여 data[] 구조체 배열을
선언하고 사용자로 부터 값을 입력 받는 insertBook()을
작성. insertBook()은 구조체 포인터를 매개변수로 받는다.
• BOOK 구조체의 데이터를 출력하는 printBooks() 함수를
작성. 마찬가지로 매개변수는 구조체 포인터
실습 - 1
동적할당
• Heap 영역은 언제 사용할까?
동적할당
int value[];
int val;
printf(“학생 수 입력 : “);
scanf(“%d”, &val);
int value[val];
동적할당
• 동적할당 함수
• malloc
• void* malloc(size_t size)
예제 - 4
예제 - 5
예제 - 6
• 2차원 배열을 동적할당 하려면?
실습 - 2
• 실습 - 1 에서 새로운 데이터를 입력할 때 마다 구조체를
동적할당 받게 보완
과제
• 스터디 시간에 한 실습
•struct member alignment에 대해 조사하고 예제 만들어
확인해 보기
과제
•구조체 동적할당을 이용해보자. 학생 n명의 수강신청을
받고자 한다. 과목은 임의로 초기화 혹은 입력 받을 수 있다.
과목은 4개, 즉 구조체 안의 변수는 4개가 되어야 한다.
학생 n명의 과목을 출력해보자.
과제
• linked list에 대해 공부하고 이를 이용해 주소록 만들기