Segmentation Fault al realizar funcion sobre Matriz

Iniciado por Manu_The_King, 4 Enero 2013, 17:04 PM

0 Miembros y 2 Visitantes están viendo este tema.

Manu_The_King

vale te paso lo que me da el programa por pantalla, la cosa debe ser o del main o de la funcion porque las demas funciones hacen su trabajo completamente. lo que no entiendo es porque en este caso la matriz no se queda con los valores que le he introducido


avesudra

#11
El fallo está aquí(en la impresión , quita el ampersand):
int Trasposada(int tras[MAX][MAX],int fil,int col, int mat[MAX][MAX])
{
   int i, j;

   for (i=0; i<fil; i++)
       for (j=0; j<col; j++)
       {
           tras[j][i] = mat[i][j];

       }
   for (i=0; i<fil; i++)
   {
       for (j=0; j<col; j++)
           printf("%d ", &mat[i][j]);   //<---------------- EOOOOO que hace ese ampersand ahí???? Arriba pone que lo pusiste para probar pero es que te está imprimiendo las direcciones de memoria
       printf("\n");
   }


}

Además es lógico, los valores que te salen son:
2293100
2293104
2293108
2293112

¿De cuatro en cuatro? No es casualidad... , son direcciones de memoria de un arreglo de int's porque va de 4 en cuatro bytes.
Regístrate en

Manu_The_King

joderrr y tanto tiempo perdid por eso... mil gracias en serio :D:D

avesudra

#13
La programación es así, los errores tontos son los que son más difíciles de ver, me alegro de que ya te funcione , de nada  ;D
Regístrate en

0xDani

Lo extraño es que el compilador no te diese un warning al utilizar el especificador "%d" para imprimir una direccion de memoria.

Saludos.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

avesudra

#15
Si que lo da:
C:\Users\xxx\main.c|16|warning: format '%d' expects argument of type 'int', but argument 2 has type 'int *' [-Wformat]|
Pero hay que tenerlos activados, cuando se compila por consola si no me equivoco hay que poner el comando -Wall para que te muestre todos los warnings...
Regístrate en