이 두 가지 방법 외에, 문자열을 저장하는 세 번째 방법이 있습니다. 바로 동적 메모리 할당(dynamic memory allocation)입니다. 단어가 어렵다고요? 지금부터 코드를 보면서 동적 메모리 할당이 무엇이고 왜 필요한지 설명하겠습니다.
다음 코드는 공백 문자를 포함하지 않는 문자열을 입력받아 저장하고 출력하는 코드입니다.
dynamic_2.c
#include <stdio.h> main() { char *a; char b[10]; printf("저장하고자 하는 문자열을 입력하세요: "); scanf("%s", b); // 배열 첫 번째 요소의 주소 값 a = b; // 포인터 변수 초기화 printf("저장된 문자열을 출력합니다: "); printf("%s", a); printf("\n"); }
실행 결과
저장하고자 하는 문자열을 입력하세요: abcdefghi
저장된 문자열을 출력합니다: abcdefghi