#include <stdio.h>

#include <string.h>

#define STU_NUMBER 1

#define REG_NUMBER 2


struct student {

int type;

union {

int stu_number;

char* reg_number;

}id;

char name[20]; 

};


int print(struct student s)

{

switch (s.type)

{

case STU_NUMBER:printf("학번 : %d\n", s.id.stu_number);

            printf("이름 : %s\n", s.name);

            break;

case REG_NUMBER:printf("주민등록번호:%s\n", s.id.reg_number);

            printf("이름 : %s\n", s.name);

            break;

default:        printf("타입 오류\n");

            break;

}

}


int main(void)

{

struct student s1, s2;


s1.type = STU_NUMBER;

s1.id.stu_number = 20160001;

strcpy(s1.name, "홍길동");


s2.type = REG_NUMBER;

strcpy(s2.id.reg_number, "970101-1234567");

strcpy(s2.name, "전우치");


print(s1);

print(s2);


return 0;

}


어디서 오류가 나는건지 모르겠습니다 ㅠㅠ 

제발 형님들의 지혜를 빌려주십시오 ㅠㅠ