우선,
const char aa[3] = {"SDD","EEW","AAA"};
여기에서 char 형 배열 3개를 선언했는데 char *형 3개가 들어가 있어서 문법 오류가 날테고요
const char *aa[3] = { "sdd", "eew", "aaa"};
으로 수정하신다면,
&(aa[0]) 과 &(aa[1]), &(aa[2]) 의 차이들은,
포인터 변수이기 때문에 64bit OS 에서는 8byte 씩 차이가 날테고요,
글쓴분과 같은 상황을 만들자면,
const char aa[3][5]={ "sdd", "eew", "aaa" } ;
처럼 aa[0] 은 char [5] 만큼 각 5개 공간을 만들어야 5씩 차이가 날 것입니다.
sadxp 5년 전
포인터 배열을 배우고있는데여, 주소에대해 궁금한점이 있어 질문을 올립니다.
예를들어,
const char aa[3] = {"SDD","EEW","AAA"};
이렇게 있다고 가정하고,
&aa[0] = 0x00001 이라고 가정하면여,
aa[0]에는 SDD\0 이렇게 4개의 값이 있으니까 주소는 0x00001~0x00004 까지 사용하는거 아닌가여?
그런데 그다음이,
&aa[1] = 0x00006 으로 나와서여,
0x00004까지 사용하고나서, 왜 0x00005부터 &aa[1]이 시작하지 않는지 궁금합니다.