[C언어 소스] 학생 구조체 동적 메모리 할당
//Student.h
#pragma once
typedef struct _Student Student;
#define MAX_NAME_LEN 20
struct _Student//학생
{
char name[MAX_NAME_LEN];// 학생 이름
int num;// 학생 번호
};
Student *New_Student(const char *name,int num);//학생은 생성할 때 이름, 번호를 부여한다.
void Delete_Student(Student *stu);//동적으로 생성한 학생 개체를 소멸
void Student_Study(Student *stu);//학생이 공부하다.
void Student_View(Student *stu);//학생 정보 보기
//Student.c
#include "Student.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
void Student_Student(Student *stu, const char *name, int num);
Student *New_Student(const char *name, int num)
{
Student *stu = 0;
stu = (Student *)malloc(sizeof(Student));
Student_Student(stu, name, num);//생성자 함수
return stu;
}
void Student_Student(Student *stu, const char *name, int num)
{
strcpy_s(stu->name, MAX_NAME_LEN, name);
stu->num = num;
}
//void Student_TStudent(Student *stu);
void Delete_Student(Student *stu)
{
//Stduent_TStudent(stu);//소멸자 함수
free(stu);
}
//void Student_TStudent(Student *stu)
//{
//}
void Student_Study(Student *stu)
{
printf("%d, %s 학생 공부하다.\n", stu->num, stu->name);
}
void Student_View(Student *stu)
{
printf("번호:%d 이름:%s\n", stu->num, stu->name);
}
//Program.c
//디딤돌 C언어 http://ehpub.co.kr
//86. 학생 구조체 동적 메모리 할당
#include <stdio.h>
#include "Student.h"
int main()
{
Student *stu = New_Student("홍길동", 33);
Student_Study(stu);
Student_View(stu);
Delete_Student(stu);
return 0;
}
실행 결과
33, 홍길동 학생 공부하다.
번호:33 이름:홍길동
본문
[디딤돌 C언어] 86. 학생 구조체 동적 메모리 할당 실습
'C언어 > 디딤돌 C언어 예제' 카테고리의 다른 글
[C언어 소스] 사용자 정의 동적 배열(순차 보관) (0) | 2016.12.03 |
---|---|
[C언어 소스] 사용자 정의 동적 배열(인덱스로 보관) (0) | 2016.12.03 |
[C언어 소스] 동적 할당한 메모리의 크기를 확장(realloc 함수 사용) (0) | 2016.12.01 |
[C언어 소스] 기본 형식 동적 메모리 할당(calloc 함수 사용 예) (0) | 2016.12.01 |
[C언어 소스] n명의 학생 성적 입력받아 출력(malloc 함수 사용) (0) | 2016.12.01 |