C언어 공부/개념 공부

2024.01.18 C언어 <메모리 동적할당(2) 문제 풀이>

코딩입문시작 2024. 1. 18. 18:40

 

/*
[문제]
하루 중 최고기온과 최저기온을 입력하여 일교차를 출력합니다. 
단, 온도를 입력할 저장 공간은 동적으로 할당한다.
*/

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    // 동적할당 영역을 연결할 포인터
    double* high;  // (최고기온 관련)
    double* low;   // (최저기온 관련)

    // 동적할당
    high = (double*)malloc(sizeof(double));
    low = (double*)malloc(sizeof(double));

    if ((high == 0) || (low == 0)) { // 동적할당 여부검사 (필수)
        printf("메모리가 부족합니다. \n");
        exit(1);
    }

    printf("최고기온과 최저기온을 입력하세요: ");
    scanf("%lf %lf", high, low); // 할당한 저장공간에 데이터 입력

    printf("일교차는 %.1lf도 입니다. \n", (*high) - (*low));  // 일교차 계산 출력

    free(high); // 할당한 저장 공간 반환
    free(low); // 할당한 저장 공간 반환
}

 

결과 창