그럼 동적 메모리 할당으로 이 문제를 해결해 봅시다.
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