Alguien sabe como se devuelve una mariz en una funcion?
por ejemplo tengo la variable:
int a[5][5];
return (a);
pero como seria la cabecera de la funcion?
int** devuelveMatrix (); <- Asi no deja;
Gracias.
int a[5][5];
return (a);
pero como seria la cabecera de la funcion?
int** devuelveMatrix (); <- Asi no deja;
Gracias.
int devuelveMatrix (int**[][5]);//Así la declaras antes del main y la 2ª dimension siempre ponerla la 1ª no hace falta
void main()
{
const int m=5,N=5;//Declaralo mejor asi
int a[m][n];//m son filas e n las columnas
...
}
int devuelveMatrix (int** matriz[][5])
{
...
}
void main()
{
const int m=5,N=5;//Declaralo mejor asi
int a[m][n];//m son filas e n las columnas
...
}
int devuelveMatrix (int** matriz[][5])
{
...
}
No he probado a compilar, pero creo que no hacen falta los ** si pones los corchetes
void devuelveMatriz (int matriz[][5])
{
}
No sé si lo siguiente funciona, pero puedes probar
int [][5] devuelveMatriz ()
{
}
Un pequeño detalle, si dentro de la funcion haces esto
int a[5][5];
...
return a;
a es una variable local de la funcion, cuando salgas de la funcion, a desaparece y lo que estás devolviendo tambien. Puedes obtener resultados muy extraños cuando intentes utilizar el valor.
Es mejor utilizar la primera forma y rellenar la matriz que te pasan, en vez de declararla local y hacer un return.
Se bueno.
void devuelveMatriz (int matriz[][5])
{
}
No sé si lo siguiente funciona, pero puedes probar
int [][5] devuelveMatriz ()
{
}
Un pequeño detalle, si dentro de la funcion haces esto
int a[5][5];
...
return a;
a es una variable local de la funcion, cuando salgas de la funcion, a desaparece y lo que estás devolviendo tambien. Puedes obtener resultados muy extraños cuando intentes utilizar el valor.
Es mejor utilizar la primera forma y rellenar la matriz que te pasan, en vez de declararla local y hacer un return.
Se bueno.
