39.0 문자열 사용하기

C 언어에서는 문자 자료형인 char는 있지만 문자열을 저장하는 자료형은 없습니다. 그래서 다음과 같이 char에 문자열을 저장하면 컴파일은 되지만 실행이 안 됩니다.

#include <stdio.h>

int main()
{
    char s1 = "Hello";    // "Hello"는 문자열, 문자열은 " "로 둘러쌈

    printf("%s", s1);     // 실행 에러

    return 0;
}

컴파일을 한 뒤 디버그 모드(디버그(D) > 디버깅 시작(S), F5)로 실행을 해보면 다음과 같이 에러가 발생합니다(에러 메시지는 운영체제, 개발툴마다 다릅니다).

실행 결과

0xC0000005: 0x00000058 위치를 읽는 동안 액세스 위반이 발생했습니다.

이 에러는 사용할 수 없는 메모리 주소에 접근했을 때 발생합니다. 예를 들면 집 주소를 보고 찾아갔는데 건물이 없는 상황과 비슷합니다.

이제 올바른 문자열 사용 방법을 알아보겠습니다.