개인 공부/C언어 공부
C언어 코딩도장 59.11 심사문제: 구조체 포인터로 포인터 연산하기
240 • 사공이
2020. 9. 6. 06:56
문제 : 표준 입력으로 x, y, z 좌표 3개가 입력되어 Point3D 배열에 저장됩니다. 다음 소스 코드를 완성하여 구조체 배열에서 두 번째 요소의 x 멤버와 세 번째 요소의 z 멤버가 출력되게 만드세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Point3D {
float x;
float y;
float z;
};
int main()
{
void* ptr = malloc(sizeof(struct Point3D) * 3);
struct Point3D p[3];
float result1, result2;
scanf("%f %f %f %f %f %f %f %f %f",
&p[0].x, &p[0].y, &p[0].z,
&p[1].x, &p[1].y, &p[1].z,
&p[2].x, &p[2].y, &p[2].z
);
memcpy(ptr, p, sizeof(struct Point3D) * 3);
memset(p, 0, sizeof(struct Point3D) * 3);
result1 = ((struct Point3D*)ptr + 1)->x;
result2 = ((struct Point3D*)ptr + 2)->z;
printf("%.1f %.1f\n", result1, result2);
free(ptr);
return 0;
}
|
cs |
이제 개강해서 C언어 공부는 못 할 것 같다. 함수랑 문자열도 다시 공부하면 좋을 것 같은데 나의 나태함 때문에 어쩔 수 없이 포인터, 구조체만 끝냈네...^-^;; 그래도 그 둘이라도 공부해놔서 다행이라고 해야 할지...
필요하면 찾아가면서 공부하지 뭐. 2학기도 화이팅이다 으아악~!