const 관련 에러 왜 이런지 이해가 잘 안가요

envy100의 이미지

void transform(const char a[2][5], char b[4][3]);

int main(void)
{
    char ori[][5] = {"abcd", "efgh"};
    char trans[4][3];

    transform(ori, trans);  // <-- warning

prac7.c:12: warning: passing arg 1 of `transform' from incompatible pointer type

왜 그런지 잘 모르겠어요
const 관련 글들을 찾아봐도 잘 모르겠더라구요

설명 좀 해주세요

감사합니다.

익명 사용자의 이미지

envy100 wrote:
void transform(const char a[2][5], char b[4][3]);

int main(void)
{
    char ori[][5] = {"abcd", "efgh"};
    char trans[4][3];

    transform(ori, trans);  // <-- warning

prac7.c:12: warning: passing arg 1 of `transform' from incompatible pointer type

왜 그런지 잘 모르겠어요
const 관련 글들을 찾아봐도 잘 모르겠더라구요

설명 좀 해주세요

감사합니다.

Quote:
const char ori[][5] = {"abcd", "efgh"};

로 고쳐보세요.
함수 프로토타입에서는 첫번째 파라메터가 const char...인데,
실제 호출시 파라메터는 const가 아니라서리...