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


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

소스코드

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

printf(a[1]); //잘 출력됨
  • 2016년 02월 02일에 작성됨

  • 컴파일 경고를 정확히 알려주세요.    Jechol Lee   2016.2.2 13:16     
조회수 271


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
  • 2016년 02월 02일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close