/* person.h */
#ifndef __PERSON_H__
#define __PERSON_H__
typedef struct _Person
{
char name[256];
int age;
} Person;
void SetPersonName(Person * p, char * n);
void SetPersonAge(Person * p, int a);
void PrintPerson(Person p);
#endif
/*
person.cpp: implementation of the Person struct.
*/
#include <stdio.h>
#include <string.h>
#include “Person.h”
void SetPersonName(Person * p, char * n)
{
strcpy((*p).name, n);
}
void SetPersonAge(Person * p, int a)
{
(*p).age = a;
}
void PrintPerson(Person p)
{
printf(“Name=%s Age=%d\n”, p.name, p.age);
}
/* main.cpp */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include “Person.h”
void main()
{
Person p1; /* 변수 값 초기화 필요 */
Person * p2;
strcpy(p1.name, “고소영”);
p1.age = 5;
PrintPerson(p1); /* 현재 값 출력 */
SetPersonName(&p1, “이나영”); /* 변수 값 지정 */
SetPersonAge(&p1, 10); /* 변수 값 지정 */
printf(“\n”);
printf(“p1.name = %s, p1.age = %d\n”, p1.name, p1.age);
/* dynamic memory allocation */
p2 = (Person *) malloc(sizeof(Person));
if (p2) {
SetPersonName(p2, “소간지”);/* 변수 값 지정 */
SetPersonAge(p2, 20); /* 변수 값 지정 */
PrintPerson(*p2); /* 현재 값 출력 */
printf(“\n”);
printf(“p2->name= %s, p2->age = %d\n “, p2->name, p2->age);
}
free (p2);
}