Search code examples
cgcc-warning

How to build function that accepts multidimensional array as parameters, receiving incompatible pointer type


double imprimirValores(char dadosHotelaria[], int n);

int main( void )
{
    char dadosHotelaria2 [1][3][50] = 
    {
        {
            "unidadeid1", "joao fernandes", "quartoExecutivo"
        };           
    };
    imprimirValores(dadosHotelaria2, 1);
  }

double imprimirValores(char dadosHotelaria[][3][50], int n)
{ 
    return 0;
}

warning: passing argument 1 of 'imprimirValores' from incompatible pointer type ((imprimir valores))


Solution

  • You declare the function to take a char [] as the first parameter:

    double imprimirValores(char dadosHotelaria[], int n);
    

    But define it to take a char [][3][50]:

    double imprimirValores(char dadosHotelaria[][3][50], int n)
    { 
        return 0;
    }
    

    The declaration of a function must match its definition:

    double imprimirValores(char dadosHotelaria[][3][50], int n);