표준 입력으로 두 정수가 입력됩니다(입력 값의 범위는 0~1073741824). 다음 소스 코드를 완성하여 입력된 두 정수의 합이 출력되게 만드세요.
표준 입력
표준 출력
judge_add_two_integer.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num1;
int num2;
_________________________________
_________________________________
scanf("%d %d", &num1, &num2);
*numPtr1 = num1;
*numPtr2 = num2;
printf("%d\n", *numPtr1 + *numPtr2);
free(numPtr1);
free(numPtr2);
return 0;
}
정답
int *numPtr1 = malloc(sizeof(int));
int *numPtr2 = malloc(sizeof(int));
풀이
scanf 함수로 변수 num1과 num2를 저장받고 포인터 numPtr1과 numPtr2를 역참조하여 각각 num1과 num2에 저장했다. 따라서 포인터 numPtr1과 numPtr2에 값을 저장할 공간을 할당해야 한다. num1과 num2는 int형이므로 포인터도 int포인터로 선언해주고 int 포인터를 선언했기 때문에 malloc 함수 안에 메모리 할당 크기를 sizeof(int)나 4를 할당해주면 된다.
'C' 카테고리의 다른 글
[C] C언어 코딩 도장 37.9 심사문제: 전치행렬 구하기 (0) | 2022.04.27 |
---|---|
[C] C언어 코딩 도장 36.13 심사문제: 가장 작은 수 출력하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 34.10 심사문제: 포인터와 주소 연산자 사용하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 33.8 심사문제: 5와 11의 배수, 공배수 처리하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 32.6 심사문제: 중첩 루프 빠져나오기 (0) | 2022.04.27 |