반응형
구조체 안에서 다른 구조체를 멤버 변수로 가질 수 있다.
#include<stdio.h>
#include<string.h> // strlen(), strcpy()
struct profile{
int age;
double height;
char* name; // 동적할당을 위한 포인터 변수를 선언한다.
};
struct student{
struct profile pf; // 다른 구조체를 멤버로 가진다.
int id;
double grade;
};
int main(){
struct student stu;
char tmp_name[10]; // (필수) 동적할당을 위해 임의의 변수를 선언해준다.
printf("이름 입력 : ");
scanf("%s", tmp_name);
stu.pf.name = (char*)malloc(strlen(tmp_name) + 1); // tmp_name의 문자열 길이('\0' 이전까지의 길이)에 1을 더해준다.
strcpy(stu.pf.name, tmp_name);
printf("이름 : %s\n", stu.pf.name);
//printf("나이 : %d\n", stu.pf.age);
//printf("키 : %.2lf\n", stu.pf.height);
//printf("id : %d\n", stu.id);
//printf("grade : %.2lf\n", stu.grade);
free(stu.pf.name);
return 0;
}
반응형
'C' 카테고리의 다른 글
[C언어] 실습: 신입사원의 이름, 학점, 토익점수를 입력하여 엘리트 사원 데이터 출력하기 (1) | 2021.05.31 |
---|---|
[C언어] 실습: 입력받은 문자열을 저장하고, 출력하는 프로그램 구현하기 (0) | 2021.05.27 |
[C언어] 실습: 구조체 'cracker'로 과자의 가격 및 열량 출력하기 (0) | 2021.05.25 |
[C언어] 실습: 좌표값(x, y) 출력하기 (0) | 2021.05.24 |
[C언어] 실습: 입력받은 숫자가 배열에 저장되어 있는지 확인하기 (0) | 2021.05.23 |