x, pt->y); } // 점의 좌표를 변경하는 함수 (pt는 출력 매개변수) void set_point(POINT* pt, int x, int y) { pt->x = x; // pt가 가리키는 POINT 변수의 멤버 x를 변경한다. pt->y = y; // pt가 가리키는 POINT 변수의 멤버 y를 변경한다. }"> x, pt->y); } // 점의 좌표를 변경하는 함수 (pt는 출력 매개변수) void set_point(POINT* pt, int x, int y) { pt->x = x; // pt가 가리키는 POINT 변수의 멤버 x를 변경한다. pt->y = y; // pt가 가리키는 POINT 변수의 멤버 y를 변경한다. }"> x, pt->y); } // 점의 좌표를 변경하는 함수 (pt는 출력 매개변수) void set_point(POINT* pt, int x, int y) { pt->x = x; // pt가 가리키는 POINT 변수의 멤버 x를 변경한다. pt->y = y; // pt가 가리키는 POINT 변수의 멤버 y를 변경한다. }">
// 예제 10-11 : 구조체형의 출력 매개변수를 가진 함수의 정의
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct point
{
int x, y; // 점의 좌표
} POINT;
void print_point_3(const POINT *pt);
void set_point(POINT* pt, int x, int y);
int ex10_11(void)
{
POINT arr[5] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i;
srand((unsigned int)time(NULL)); // 난수의 시드를 지정한다.
for (i = 0; i < sz; i++)
{
int x = rand() % 100; // 0~99사이의 임의의 정수를 생성한다.
int y = rand() % 100;
set_point(&arr[i], x, y);
}
for (i = 0; i < sz; i++)
{
print_point_3(&arr[i]);
printf(" ");
}
printf("\\n");
return 0;
}
// 점의 좌표를 출력하는 함수 (pt는 입력 매개변수)
void print_point_3(const POINT* pt) // 포인터에 의한 전달
{
printf("(%d, %d)", pt->x, pt->y);
}
// 점의 좌표를 변경하는 함수 (pt는 출력 매개변수)
void set_point(POINT* pt, int x, int y)
{
pt->x = x; // pt가 가리키는 POINT 변수의 멤버 x를 변경한다.
pt->y = y; // pt가 가리키는 POINT 변수의 멤버 y를 변경한다.
}