2014-12-27 4 views
1

C에서 문자열 배열을 사용하는 방법은 무엇입니까? 내 코드 :C의 다차원 문자 배열

void test(char **a){ 
    printf("%s", a[0]); 
} 
int main(){ 
    char b[10][10]; 
    strcpy(b[0],"abc"); 
    strcpy(b[1],"dfgd"); 
    test(b); 
    return 0; 
} 

이 코드 예제를 작성하는 방법은 무엇입니까?

+4

이 컴파일러는 함수'test'에 뾰족한 배열의 "진짜"크기를 알 수 없습니다 설명합니다. 나는'test (b)'줄에 경고를하지 않았다는 것에 상당히 놀랐습니다. 'char ** a'를'char [] [10]'로 변경하십시오. –

+0

매우 감사합니다 :) 그것은 작동합니다. – kkkkk

+0

당신은 환영합니다 :) –

답변

4

당신은 사용할 수 있습니다

void test(char a[10][10]){ 
    printf("%s", a[0]); 
} 

또는

void test(char a[][10]){ 
    printf("%s", a[0]); 
} 

또는

void test(char (*a)[10]){ 
    printf("%s", a[0]); 
} 

int main(){ 
    char b[10][10]; 
    strcpy(b[0],"abc"); 
    strcpy(b[1],"dfgd"); 
    test(b); 
    return 0; 
} 

세 선언

완벽하게 동일합니다. 마지막 하나가 더 좋지만.

answer은 더 나은

+0

나는 그것이 매우 나빴다 고 생각했다. (왜냐하면 내가 질문을하자마자 부정적 득표가 바람처럼 날아가고 있었기 때문이다. ( –

+0

다시 열 수있다. (downvotes 중 하나가 광산이었고, 당신이 질문을 다시 열거 나 취소를 취소 할 경우 물론 철회 할 의향이 있습니다.) –

+0

@ πάνταῥεῖ done. –