2013-12-16 4 views
0

Bonjour, 계속 경고 메시지가 표시되며 경고없이 모든 결과를 시도했습니다. 프로그램은 여전히 ​​작동하지만 경고는 성가시다. 나는 "왜"를 알고 싶다.호환되지 않는 포인터 유형 경고 수정

테이블이며 사용자의 입력을 테이블의 위치로 가져 와서 encuentRuta 함수에서 해당 위치를 사용합니다.

이 코드 (의 일부)입니다 :

char encuentRuta (int posv, int posh, char lab[TAMV][TAMH]); 

int main (int argc, char *argv[]) { 

    int altura = atoi(argv[1]); 
    int base = atoi(argv[2]); 

    /* Define the table */ 
    char laberinto[TAMV][TAMH] = {LABERINTO}; 

encuentRuta (altura, base, &laberinto); 

내가 점점 계속 오류는 다음과 같습니다 도움을

>  warning: incompatible pointer types passing 'char (*)[8][12]' 
>   to parameter of type 'char (*)[12]' [-Wincompatible-pointer-types] 
>    encuentRuta (altura, base, &laberinto); 
>          ^~~~~~~~~~ 
>  laberinto.c:16:44: note: passing argument to parameter 'lab' here 
>  char encuentRuta (int posv, int posh, char lab[TAMV][TAMH]); 

감사합니다.

답변

5

encuentRuta()으로 전화 할 때 laberinto 앞에 &을 생략하십시오.

메시지는 당신에게 설명하기 위해 최선의 노력을 다하고 있습니다. 2D 배열 (&laberinto)의 주소를 가져 오면 예제에 char (*)[8][12] 또는 SomeType (*)[size1][size2]으로 쓰여진 배열에 대한 포인터가 나타납니다. 배열을 전달하려면 간단히 이름을 지정하십시오.

encuentRuta(altura, base, laberinto); 
+0

학습자를 돕기위한 환호성! –

관련 문제