C언어/디딤돌 C언어 예제

[C언어 소스] 학생 구조체 동적 메모리 할당

언제나휴일 2016. 12. 2. 13:34
반응형

[C언어 소스] 학생 구조체 동적 메모리 할당


학생 구조체 동적 메모리 할당.zip



//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 *nameint num)

{

    Student *stu = 0;

    stu = (Student *)malloc(sizeof(Student));

    Student_Student(stu, namenum);//생성자 함수

    return stu;

}

void Student_Student(Student *stuconst char *nameint num)

{

    strcpy_s(stu->name, MAX_NAME_LENname);

    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. 학생 구조체 동적 메모리 할당 실습



반응형