더북(TheBook)

그럼 동적 메모리 할당으로 이 문제를 해결해 봅시다.

dynamic_6.c

#include <stdio.h>
 
char* WhatIsYourName(void);
 
main()
{
    char *name1;
    char *name2;
 
    name1 = WhatIsYourName(); // 함수 호출 마다 동적으로 메모리 할당하여 사용
    name2 = WhatIsYourName();
 
    printf("Hi, %s\n", name1);
    printf("Hi, %s\n", name2);
 
    free(name1); // 동적 메모리 해제
    free(name2);
}
 
char* WhatIsYourName(void)
{
    char *name = (char *)malloc(sizeof(char) * 15); // 동적 메모리 할당
 
    printf("당신의 이름을 입력 해주세요: ");
    gets(name);
 
    return name;
}

실행 결과

당신의 이름을 입력 해주세요: hwlee

당신의 이름을 입력 해주세요: woojin

Hi, hwlee

Hi, woojin

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.