C배열 원소로 문자열을 저장하는 방법이 궁금합니다
조회수 3990회
2차원 배열을 만들어 원소 하나 하나에 스트링을 저장하고 싶습니다. 제 코드는 출력은 잘 되는데 컴파일하면 경고를 냅니다. 경고 없이 배열을 만드려면 어떻게 해야되나요?
소스코드
char (*a[2])[14];
a[0]="blah";
a[1]="hmm";
printf(a[1]); //잘 출력됨
1 답변
-
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
댓글 입력