Person Struct (in C)


/* 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);
}


Leave a Reply

Your email address will not be published. Required fields are marked *