C배열 원소로 문자열을 저장하는 방법이 궁금합니다

조회수 3990회

2차원 배열을 만들어 원소 하나 하나에 스트링을 저장하고 싶습니다. 제 코드는 출력은 잘 되는데 컴파일하면 경고를 냅니다. 경고 없이 배열을 만드려면 어떻게 해야되나요?

소스코드

char (*a[2])[14];
a[0]="blah";
a[1]="hmm";

printf(a[1]); //잘 출력됨

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    1. 한 번 설정 한 후 스트링을 바꾸고 싶지 않다면(const) :

    const char *a[2]; //const char 포인터를 원소로 갖는 길이가 2인 배열
    a[0] = "blah"; //static 문자열의 주소를 저장 - 메모리의 read-only영역을 가리킴
    a[1] = "hmm";
    
    a[0][1] = 'a'//에러
    

    2. 설정 한 후 값을 바꾸고 싶다면

    char a[2][14]; //일반적인 2차원 배열 설정
    strcpy(a[0], "blah"); //stcpy로 복사
    strcpy(a[1], "hmm");
    
    a[0][1] = 'a'//ok
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)