elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Segmentation Fault al realizar funcion sobre Matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Segmentation Fault al realizar funcion sobre Matriz  (Leído 6,878 veces)
Manu_The_King

Desconectado Desconectado

Mensajes: 34


intento de ingeniero ^^'


Ver Perfil WWW
Re: Segmentation Fault al realizar funcion sobre Matriz
« Respuesta #10 en: 5 Enero 2013, 18:23 pm »

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



En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Segmentation Fault al realizar funcion sobre Matriz
« Respuesta #11 en: 5 Enero 2013, 18:38 pm »

El fallo está aquí(en la impresión , quita el ampersand):
Código
  1. int Trasposada(int tras[MAX][MAX],int fil,int col, int mat[MAX][MAX])
  2. {
  3.    int i, j;
  4.  
  5.    for (i=0; i<fil; i++)
  6.        for (j=0; j<col; j++)
  7.        {
  8.            tras[j][i] = mat[i][j];
  9.  
  10.        }
  11.    for (i=0; i<fil; i++)
  12.    {
  13.        for (j=0; j<col; j++)
  14.            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
  15.        printf("\n");
  16.    }
  17.  
  18.  
  19. }
Además es lógico, los valores que te salen son:
Código:
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.


« Última modificación: 5 Enero 2013, 18:46 pm por avesudra » En línea

Regístrate en
Manu_The_King

Desconectado Desconectado

Mensajes: 34


intento de ingeniero ^^'


Ver Perfil WWW
Re: Segmentation Fault al realizar funcion sobre Matriz
« Respuesta #12 en: 5 Enero 2013, 19:10 pm »

joderrr y tanto tiempo perdid por eso... mil gracias en serio :D:D
En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Segmentation Fault al realizar funcion sobre Matriz
« Respuesta #13 en: 5 Enero 2013, 20:15 pm »

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
« Última modificación: 5 Enero 2013, 20:38 pm por avesudra » En línea

Regístrate en
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Segmentation Fault al realizar funcion sobre Matriz
« Respuesta #14 en: 5 Enero 2013, 21:44 pm »

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

Saludos.
En línea

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


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Segmentation Fault al realizar funcion sobre Matriz
« Respuesta #15 en: 5 Enero 2013, 21:53 pm »

Si que lo da:
Código:
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...
« Última modificación: 5 Enero 2013, 22:00 pm por avesudra » En línea

Regístrate en
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines